Gait generation device for legged mobile robot

ABSTRACT

A vertical component or the like of a floor reaction force moment to be applied to a robot  1  is defined as a restriction object amount, and the permissible range of the restriction object amount is set. A provisional motion of the robot that satisfies a predetermined dynamic balance condition is determined on a predetermined dynamic model, and if a restriction object amount determined by the provisional motion deviates from the permissible range, then the motion of a desired gait is determined by correcting the provisional motion by changing the angular momentum changing rate of the robot from the provisional motion while limiting the restriction object amount to the permissible range on the dynamic model.

TECHNICAL FIELD

The present invention relates to a device for generating gaits suitednot only to walking but also running of a legged mobile robot.

BACKGROUND ART

Hitherto, a major object of generating gaits (desired gaits) for makinga legged mobile robot, e.g., a bipedal mobile robot, carry out atraveling motion has been focused mainly on generating gaits (walkinggaits) to make the robot effect a smooth walking motion. In recentyears, however, as the development of legged mobile robots advances, ithas come to be desired to generate gaits that enable the robots not onlyto walk but to run also. Furthermore, it has come to be desired togenerate gaits that enable the robots to move without troubles even on aslippery floor (so-called low-μ path) on which a sufficient frictionalforce cannot be produced.

Since the Chinese characters for “gait” include a character meaning“walking,” the gait tends to be misinterpreted that the definitionthereof is limited to walking. However, “gait” originally presents aconcept that includes running, as it is used as a term indicating arunning mode of a horse, such as “trot.”

A description will now be given of the difference between walking andrunning in terms of characteristics.

A traveling mode that includes an instant at which all legs aresimultaneously floating is usually defined as running. This definition,however, does not always make it possible to clearly distinguish betweenwalking and running. For instance, in most humans, there are instants atwhich all legs float at the same time during fast jogging, whereas manyhumans have one of their legs always in contact with the ground duringslow jogging. It is somehow perceptually unreasonable to define fastjogging as running and slow jogging as walking.

FIG. 50 shows a pattern of vertical body positions and floor reactionforce vertical components (a sum of floor reaction force verticalcomponents acting on right and left legs) in typical running, and FIG.51 shows a pattern of vertical body positions and floor reaction forcevertical components in typical walking.

A vertical body position/velocity means a vertical position of arepresentative point of a body and a velocity thereof. A horizontal bodyposition/velocity means a horizontal position of a representative pointof the body and a velocity thereof. A vertical body position/velocityand a horizontal body position/velocity together will be referred to asbody position/velocity.

Strictly speaking, the “floor reaction force vertical component” shouldbe described as “translational floor reaction force vertical component”to distinguish it from a moment component about a vertical axis of afloor reaction force; however, the term is too long, so that the term“translational” will be omitted. Hereinafter, the “translational floorreaction force horizontal component” will be described as “floorreaction force horizontal component,” omitting “translational.”

First, attention will be focused on the movement of the body. Inwalking, the body reaches a highest level at the instant the body passesover a supporting leg, while it reaches a lowest level at this instantin running. In other words, the phase of a vertical motion pattern ofthe body reverses between walking and running.

Meanwhile, a floor reaction force remains relatively constant inwalking, whereas it considerably varies in running, the floor reactionforce reaching its maximum at the moment the body passes over asupporting leg. Needless to say, the floor reaction force is zero at theinstant when all legs are simultaneously floating. More detailedobservation reveals that a floor reaction force of a magnitude that issubstantially proportional to a compression amount of the supporting legis generated while running. In other words, it may be said that the legsare used like springs to jump for traveling while running.

Slow jogging has the same body vertical motion phase as that of typicalrunning. In addition, slow jogging frequently includes no instants atwhich all legs are simultaneously floating; however, even in this case,a floor reaction force reaches substantially zero, although notcompletely zero, at an instant when a supporting leg and an idle leg areswitched.

Hence, distinguishing between walking and running on the basis of theaforesaid characteristics of the vertical motions of the body or floorreaction force patterns as described above may be more appropriate andperceptually reasonable, because slow jogging is also regarded asrunning.

In particular, to distinguish between the two on the basis of a mostcharacteristic aspect, running may be defined as a traveling mode inwhich the floor reaction force becomes zero or substantially zero at theinstant a supporting leg is switched, while walking may be defined as atraveling mode (a floor reaction force vertical component remainingrelatively constant) other than that.

The present applicant has previously proposed, in PCT Kokai publicationWO/02/40224, an art for generating freely and in real time a gait of alegged mobile robot that includes a floor reaction force whilesubstantially satisfying dynamic balance conditions (This means theconditions of balance among gravity, an inertial force, and a floorreaction force of a desired gait. In a narrow sense, it means that thehorizontal component of a moment about a desired ZMP by the resultantforce of gravity and an inertial force produced by a motion of a desiredgait is zero. Detailed description will be given hereinafter). This artand a series of the control devices of legged mobile robots proposed bythe present applicant in Japanese Unexamined Patent ApplicationPublication No. 10-86081, Japanese Unexamined Patent ApplicationPublication No. 10-277969 can be applied to walking and also to running.

These arts, however, have not considered the magnitudes of a verticalcomponent of a floor reaction force moment about the ZMP of a desiredgait. Hence, there has been a danger in that the vertical component of afloor reaction force moment becomes excessive, causing a frictionallimitation to be exceeded and consequently leading to a spin. The term“spin” refers to a state in which a yaw angle (a rotational angle abouta vertical axis) velocity of an actual robot deviates from a desired yawangular velocity.

When a robot walks on a floor surface having a high friction coefficient(in this case, at least one leg is always in contact with the ground), afloor reaction force vertical component is always substantiallyequivalent to a robot's own weight, thus providing a higher limit of africtional force (i.e., the vertical component of a floor reaction forcemoment). This makes the robot resistant to spin.

In running, however, there are cases where the floor reaction forcevertical component becomes zero or close to zero; hence, in such a case,the limit of the moment vertical component of the frictional force of afloor surface becomes zero or close to zero even if a frictioncoefficient is high. Accordingly, there has been a danger in that afloor reaction force moment vertical component of a desired gait exceedsa limit, causing a spin and a fall.

Further, even in the case of walking, there has been a danger in that arobot spins and falls if a floor has a low friction coefficient.

Meanwhile, the present applicant has previously proposed a technique, inwhich an arm is swung so as to cancel a moment vertical componentgenerated by anything other than arms in a desired gait in, for example,PCT application PCT/JP02/13596.

In this case, the moment vertical component of a desired gait will besubstantially zero; however, if the robot travels, severely swinging itslegs, it will also swing its arms severely.

Generally, in a human-like robot, the mass of its arms is smaller thanthat of its legs. Hence, in order to completely cancel a moment verticalcomponent, it is necessary to swing the arms more severely than thelegs.

However, the motion range of the arms is limited and the torque andspeed of the actuators of the arms are also limited. Therefore, if therobot travels, severely swinging its legs, there have been some caseswhere a moment vertical component cannot be fully canceled by the arms.

Furthermore, there has been a danger in that, if arms are swung tocancel out a moment vertical component produced by anything other thanarms in a desired gait, then the center of arm swing is graduallyoffset, causing the swings of the right and left arms to beasymmetrical. Specifically, to make a left turn, if a robot swings itsarms to fully offset a moment vertical component generated by anythingother than arms, then the left arm is swung more toward the front andswung less toward the rear, while the right arm is swung less toward thefront and swung more toward the rear in order to offset the change in anangular momentum caused by the legs and the body having turned to theleft. This may cause the left arm to reach a motion limit of the swingtoward the front, and the right arm to reach a motion limit of the swingtoward the rear.

Furthermore, if a motion is made to restore the center of the arm swingso as to prevent the swings of the right and left arms from becomingasymmetrical, then a floor reaction force moment vertical component isgenerated. This in turn causes a floor reaction force moment verticalcomponent of a desired gait to exceed a limit, possibly causing therobot to spin.

Accordingly, an object of the present invention is to provide a gaitgenerating device which solves the problems described above and which iscapable of generating further ideal gaits regardless of the types ofgaits, such as walking and running, and a friction condition of a floorsurface.

More specifically, an object of the present invention is to provide agait generating device capable of generating gaits that make it possibleto prevent a robot from spinning and falling caused by the spinning,considering limitation of a moment vertical component of the force of afriction between the robot and a floor surface. Another object is toprovide a gait generating device capable of generating a gait motionpattern that satisfies a dynamic balance condition even in aleg-floating period or even if the limit of a moment vertical componentof a frictional force is extremely low. Still another object is toprevent lateral asymmetry of a desired gait from increasing so as tosecure continuity of a motion.

DISCLOSURE OF INVENTION

To fulfill the aforesaid objectives, in a gait generating device forgenerating a desired gait of a legged mobile robot that travels bymoving a plurality of legs extended from its body, a gait generatingdevice of a legged mobile robot in accordance with the present inventionis provided with a permissible range setting means for setting apermissible range of a restriction object amount, the restriction objectamount being a vertical component of a floor reaction force moment to beapplied to the robot or a component of the floor reaction force momentin floor surface normal line direction, or a vertical component of anangular momentum changing rate of the robot or a component of theangular momentum changing rate in floor surface normal line direction, aprovisional motion determining means for determining a provisionalmotion of the desired gait such that a resultant force of a gravity andan inertial force acting on the robot satisfies a predetermined dynamicbalance condition on a predetermined dynamic model, and a provisionalmotion correcting means for correcting the provisional motion todetermine the motion of a desired gait by changing the changing rate ofan angular momentum of the robot from the provisional motion, whilelimiting the restriction object amount to the permissible range on thedynamic model if the restriction object amount defined by theprovisional motion of the desired gait deviates from the permissiblerange (a first invention).

According to the present invention (the first invention), if therestriction object amount defined by the provisional motion of a desiredgait deviates from the permissible range, the motion of the desired gaitis determined by correcting the provisional motion by changing thechanging rate of an angular momentum of a robot from the provisionalmotion, while limiting the restriction object amount to the permissiblerange on the dynamic model. Thus, the motion of a desired gait isgenerated, while limiting the restriction object amount to thepermissible range. The restriction object amount is proportional orsubstantially proportional to the moment vertical component of thefriction force between a robot and a floor surface. Therefore, thepresent invention (the first invention) is capable of generating a gaitthat makes it possible to prevent a robot from spinning and fallingcaused by the spinning, taking the restriction of the moment verticalcomponent of a frictional force into account.

In the first invention, the angular momentum changing rate that ischanged to limit the restriction object amount to the permissible rangeis, for example, the vertical component of the angular momentum changingrate or the component thereof in floor surface normal line direction.

In the first invention, the dynamic balance condition is, for example, acondition under which the horizontal component of a moment (a componentother than the vertical component of the moment) generated about apredetermined point (e.g., a desired ZMP) on a floor surface by theresultant force of a gravity and an inertial force acting on the roboton a predetermined dynamic model satisfies a predetermined dynamicbalance condition matches or substantially matches a predetermineddesired floor reaction force moment horizontal component, or a conditionunder which a translational force vertical component of the resultantforce matches or substantially matches a predetermined desiredtranslational floor reaction force vertical component. Of these dynamicbalance conditions, the former dynamic balance condition is importantfor generating a gait that ensures stable motion (free of the danger offalling) of a robot, while the latter dynamic balance condition isimportant for generating a gait that ensures smooth running of therobot.

The permissible range of a restriction object amount may be set,considering the type of gait, the period of gait, and the frictionalforce that can be produced by floor, and the permissible range may beset to zero (both an upper limit value and a lower limit value of thepermissible range may be zero). For example, in the case of a runninggait having a period during which all legs of a robot float, thepermissible range in the floating period may be set to zero.

In the first invention, a motion to be corrected by the provisionalmotion correcting means is preferably the motion of a body of the robotor an arm extended from the body (a second invention).

According to the second invention, the provisional motion can becorrected while minimizing the correction of a motion that influencesthe dynamic balance condition.

In the first invention, to be more specific, in the motion of the bodyof the robot or the motion of an arm extended from the body, the motionto be corrected by the provisional motion correcting means is preferablya motion that changes the vertical component of the angular momentumchanging rate of the robot or the component of the angular momentumchanging rate in floor surface normal line direction while substantiallymaintaining the position of the center-of-gravity of the robot at theposition of the center-of-gravity determined by the provisional motion(a third invention).

According to the third invention, the provisional motion can becorrected while substantially maintaining the translational floorreaction force or the horizontal component of a floor reaction forcemoment acting on the robot at the one corresponding to the provisionalmotion. Hence, it is possible to determine the motion of a desired gaitso that the restriction object amount remains in a permissible range bycorrecting the provisional motion of the body or an arm of the robot,while substantially satisfying the dynamic balance condition. Therefore,it is possible to generate a motion pattern of a gait that satisfies adynamic balance condition even in a floating period or when thelimitation of a moment vertical component of a frictional force isextremely low.

In these first to third inventions, if the robot is a robot equippedwith two arms extended from the right and left sides of the body, thenthe motion to be corrected by the provisional motion correcting means ispreferably a motion for moving the two arms forward and backwardrelative to the robot in opposite directions from each other (a fourthinvention).

The fourth invention facilitates the correction of the provisionalmotion.

In the first to the fourth inventions, if the desired gait is a gait inwhich a landing period during which at least one leg of the robot islanded and a floating period during which all legs are floated in theair are alternately repeated, then the permissible range is set tosubstantially zero at least during the floating period (a fifthinvention).

With this arrangement, the motions of a desired gait for the landingperiod and also for the floating period can be properly determined.

Preferably, the first to the fifth inventions is equipped with a desiredvertical component determining means for determining a desired verticalcomponent of a translational floor reaction force of the robot or adesired vertical component of a total center-of-gravity acceleration ora desired vertical component of a body acceleration, wherein thepermissible range setting means sets the permissible range on the basisof a desired vertical component determined by the desired verticalcomponent determining means (a sixth invention).

More specifically, the moment vertical component or the component infloor surface normal line direction of the friction force between arobot and a floor surface is substantially proportional to atranslational floor reaction force vertical component. The translationalfloor reaction force vertical component is proportional to the sum ofthe total center-of-gravity acceleration vertical component of the robotand a gravitational acceleration. Furthermore, if, for example, the massof the legs of the robot is sufficiently smaller than the mass of thebody, then the translational floor reaction force vertical component issubstantially proportional to the sum of a body acceleration verticalcomponent and a gravitational acceleration. Hence, the permissible rangeof a pattern suited to a translational floor reaction force verticalcomponent that is desired to be generated by the robot can be set bydetermining a desired vertical component of a translational floorreaction force of the robot or a desired vertical component of a totalcenter-of-gravity acceleration or a desired vertical component of a bodyacceleration, and then by setting the permissible range on the basis ofthe determined desired vertical component.

In the sixth invention, the provisional motion determining means willdetermine the provisional motion such that the desired verticalcomponent determined by the desired vertical component determining meansis satisfied, that is, a translational floor reaction force verticalcomponent of the robot (the translational floor reaction force verticalcomponent that matches the vertical component of the resultant force ofan inertial force of a provisional motion and gravity) or a totalcenter-of-gravity acceleration vertical component or a body accelerationvertical component agrees or substantially agrees with the desiredvertical component determined by the desired vertical componentdetermining means. In other words, this means that a provisional motionis determined such that the vertical component of the resultant force ofthe inertial force of the provisional motion and the gravity matches orsubstantially matches a desired translational floor reaction forcevertical component corresponding to the desired vertical componentdetermined by the desired vertical component determining means on thedynamic model.

In the aforesaid first to the sixth inventions, the dynamic model ispreferably a dynamic model that describes at least the relationshipbetween a motion to be corrected by the provisional motion correctingmeans and a floor reaction force as a relationship between a rotationalmotion of a flywheel, which is rotative about a vertical axis or a floorsurface normal line axis, and a floor reaction force (a seventhinvention).

With this arrangement, a motion to be corrected will correspond to arotational motion of the flywheel that independently changes only afloor reaction force moment about the vertical axis or the floor surfacenormal line axis, thus permitting easy computation for correcting aprovisional motion with a less amount of computation.

Furthermore, in the first to the seventh inventions described above, theprovisional motion correcting means ideally determines a motion of thedesired gait such that the motion of the robot to be corrected if therestriction object amount deviates from the permissible range isapproximated or matched to a predetermined reference motion trajectoryin a predetermined period during which the restriction object amountdetermined by the provisional motion lies in the permissible range(e.g., a period during which the permissible range is sufficientlylarge)(an eighth invention).

According to the eighth invention, the motion of a robot to be correctedcan be approximated or matched to the ideal reference motion trajectoryduring the predetermined period in which the restriction object amountdoes not deviate from the permissible range, that is, the period inwhich a sufficient frictional force can be produced between contactsurfaces of the robot and the floor surface. As a result, it is possibleto prevent the motion of the robot to be corrected from changing into amotion with an extreme bias. In other words, it is possible to preventthe lateral asymmetry of the motion of a desired gait from increasing,ensuring the continuity of the motion. If a gait that alternatelyrepeats the floating period and the landing period is generated, as inthe fifth invention, then the predetermined period will be in thelanding period.

In the first to the eighth inventions, preferably, the desired gait tobe generated has a current time gait generated for each predeterminedperiod to be used for an actual motion of the robot, and a normal gait,which is a virtual cyclic gait following each current time gait andwhich is used for generating the current time gait, and the processingof the provisional motion determining means and the provisional motioncorrecting means is carried out when generating the current time gaitand/or a normal gait following the current time gait (a ninthinvention).

In the ninth invention, the processing of the provisional motiondetermining means and the provisional motion correcting means is carriedout in generating a current time gait and/or a normal gait, thus makingit possible to generate an appropriate current time gait and/or normalgait in which a restriction object amount does not deviate from apermissible range. A normal gait is a proper gait as the gait followinga current time gait, and the current time gait is generated such that itis continued or approximated to a normal gait, satisfying a condition inwhich the restriction object amount remains within a permissible rangeor satisfying the dynamic balance condition.

In the ninth invention, the permissible range setting means preferablysets the permissible range of the current time gait and the permissiblerange of the normal gait following the current time gait on the basis ofa required parameter of the current time gait (e.g., the parameter thatdefines the landing position/posture of the distal portion of each legor expected landing time) (a tenth invention).

With this arrangement, an ideal normal gait that matches a current timegait can be generated.

To be more specific, in the tenth invention, if the legged mobile robotis a bipedal mobile robot having two legs, then the required parametersideally include the parameters that define the landing position/posturefor two steps of the distal portions of the legs of the bipedal mobilerobot and a parameter that defines the gait cycles of a first step and asecond step (an eleventh invention).

This arrangement makes it possible to determine a normal gait thatfollows a current time gait by using the same type of mode (a mode, suchas walking or running) as that of the current time gait, and todetermine an ideal normal gait (a gait free from divergence) thatfollows the current gait. Thus, a current time gait capable of reliablysecuring stability when a robot travels can be generated.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram schematically showing a general construction of abipedal mobile robot as a legged mobile robot in an embodiment of thepresent invention,

FIG. 2 is a diagram showing a structure of a distal portion of a leg ofthe robot shown in FIG. 1,

FIG. 3 is a block diagram showing a construction of a control unitprovided in the robot shown in FIG. 1, and

FIG. 4 is a block diagram showing a functional construction of thecontrol unit.

FIG. 5 is a diagram for explaining a running gait generated in theembodiment,

FIG. 6 is a graph showing an example of a vertical component trajectoryof a desired floor reaction force,

FIG. 7 shows graphs illustrating examples of an X component and a Ycomponent of a desired ZMP trajectory,

FIG. 8 is a diagram for explaining a body translational mode of a robot,

FIG. 9 is a diagram for explaining a body inclination mode of the robot,

FIG. 10 is a diagram for explaining a body yaw rotation mode of therobot,

FIG. 11( a) is a diagram for explaining an antiphase arm swing mode ofthe robot in a plan view and

FIG. 11( b) is a diagram for explaining an antiphase arm swing mode ofthe robot in a side view, and

FIG. 12 is a diagram for explaining a dynamic model used in theembodiment.

FIG. 13 is a flowchart showing a main routine processing of a gaitgenerating device in the embodiment,

FIG. 14 is a diagram for explaining a divergence state of the robot,

FIG. 15 is a flowchart showing a subroutine processing of S022 of FIG.13,

FIG. 16 is a diagram for explaining a normal gait and a supporting legcoordinate system,

FIG. 17 is a diagram illustrating a body trajectory of the normal gaitand the supporting leg coordinate system,

FIG. 18 is a graph showing an example of a reference antiphase arm swingangle,

FIG. 19 is a graph showing a setting example of a desired floor reactionforce vertical component trajectory in a normal gait,

FIG. 20 is a graph showing a setting example of a floor reaction forcehorizontal component permissible range in a normal gait,

FIG. 21 is a graph showing a setting example of a floor reaction forcemoment vertical component permissible range in the normal gait, and

FIG. 22 is a graph showing a setting example of the desired ZMPtrajectory in the normal gait.

FIG. 23 is a flowchart showing subroutine processing of S024 in FIG. 13,

FIG. 24 is a flowchart showing subroutine processing of S208 in FIG. 23,

FIG. 25 is a flowchart showing subroutine processing of S306 in FIG. 24,and

FIG. 26 is a flowchart showing subroutine processing of S412 in FIG. 25.

FIG. 27 is a graph showing an example of a floor reaction forcehorizontal component in which a permissible range is not considered,

FIG. 28 is a graph showing an example of the floor reaction forcehorizontal component in which a permissible range is considered,

FIG. 29 is a graph showing an example of a body inclination angularacceleration,

FIG. 30 is a graph showing an example of a body inclination restoringmoment ZMP-converted value for restoring a body inclination angle of therobot,

FIG. 31 is a graph showing an example of a body inclination angularacceleration in which the body inclination restoring momentZMP-converted value is reflected,

FIG. 32 is a graph showing an example of a floor reaction force momentvertical component in which a permissible range is not considered,

FIG. 33 is a graph showing an example of a floor reaction force momentvertical component in which the permissible range is considered,

FIG. 34 is a graph showing an example of an antiphase arm swing moment,

FIG. 35 is a graph showing an antiphase arm swing angular accelerationcorresponding to the antiphase arm swing moment shown in FIG. 34,

FIG. 36 is a graph showing an example of an antiphase arm swingrestoring angular acceleration for restoring an antiphase arm swingangle,

FIG. 37 is a graph showing an antiphase arm swing restoring momentcorresponding to an antiphase arm swing restoring angular accelerationshown in FIG. 36, and

FIG. 38 is a graph showing a floor reaction force moment verticalcomponent formed by combining the floor reaction force moment verticalcomponent shown in FIG. 33 and the antiphase arm swing restoring momentshown in FIG. 37.

FIG. 39 is a flowchart showing subroutine processing of S026 in FIG. 13,

FIG. 40 is a graph showing a setting example of a floor reaction forcehorizontal component permissible range of a current time gait,

FIG. 41 is a graph showing a setting example of a floor reaction forcemoment vertical component permissible range of the current time gait,

FIG. 42 is a flowchart showing subroutine processing of S028 in FIG. 13,

FIG. 43 is a flowchart showing subroutine processing of S702 in FIG. 42,

FIG. 44 is a graph showing examples of a provisional desired ZMP of thecurrent time gait, a ZMP correction amount, and a desired ZMP aftercorrection,

FIG. 45 is a flowchart showing subroutine processing of S030 in FIG. 13,and

FIG. 46 is a flowchart showing subroutine processing of S1412 in FIG.45.

FIG. 47 is a graph showing a relationship between normal gaits anddesired gaits relative to body position trajectories,

FIG. 48 is a diagram showing another example of a body inclination mode(body inclination about waist),

FIG. 49 is a diagram for explaining another example of a dynamic model,

FIG. 50 is a diagram showing a relationship between the position of thebody in a vertical direction and a floor reaction force verticalcomponent in a running gait of the robot, and

FIG. 51 is a diagram showing a relationship between the position of thebody in a vertical direction and a floor reaction force verticalcomponent in a walking gait of the robot.

BEST MODE FOR CARRYING OUT THE INVENTION

Referring now to the accompanying drawings, a gait generating device ofa legged mobile robot according to an embodiment of the presentinvention will be explained. As the legged mobile robot, a bipedalmobile robot will be used as examples.

FIG. 1 is a schematic diagram generally showing a bipedal mobile robotrepresenting a legged mobile robot according to the embodiment.

As shown in the figure, a bipedal mobile robot (hereinafter referred toas “the robot”) 1 is equipped with a pair of right and left legs (leglinks) 2, 2 provided such that they extend downward from a body (a basebody of the robot 1) 3. The two legs 2, 2 share the same construction,each having six joints. The six joints of each leg are comprised of, inthe following order from the body 3 side, joints 10R, 10L (symbols R andL meaning correspondence to the right leg and the left leg,respectively; the same will be applied hereinafter) for swinging(rotating) a hip (waist)(for rotating in a yaw direction relative to thebody 3), joints 12R, 12L for rotating the hip (waist) in a rolldirection (about an X axis), joints 14R, 14L for rotating the hip(waist) in a pitch direction (about a Y axis), joints 16R, 16L forrotating knees in the pitch direction, joints 18R, 18L for rotatingankles in the pitch direction, and joints 20R, 20L for rotating theankles in the roll direction.

A foot (foot portion) 22R (L) constituting a distal portion of each leg2 is attached to the bottoms of the two joints 18R (L) and 20R (L) ofthe ankle of each leg 2. The body 3 is installed at the uppermost top ofthe two legs 2, 2 through the intermediary of the three joints 10R (L),12R (L) and 14R (L) of the hip of each leg 2. A control unit 60 or thelike, which will be discussed in detail hereinafter, is housed insidethe body 3. For convenience of illustration, the control unit 60 isshown outside the body 3 in FIG. 1.

In each leg 2 having the aforesaid construction, a hip joint (or a waistjoint) is formed of the joints 10R (L), 12R (L) and 14R (L), the kneejoint is formed of the joint 16R (L), and the ankle joint is formed ofthe joints 18R (L) and 20R (L). The hip joint and the knee joint areconnected by a thigh link 24R (L), and the knee joint and the anklejoint are connected by a crus link 26R (L).

A pair of right and left arms 5, 5 is attached to both sides of an upperportion of the body 3, and a head 4 is disposed at a top end of the body3. Each arm 5 is provided with a shoulder joint composed of three joints30R (L), 32R (L), and 34R (L), an elbow joint composed of a joint 36R(L), a wrist joint composed of a joint 38R (L), and a hand 40R (L)connected to the wrist joint. The head 4 is not directly connected tothe topic of the present invention, so that detailed explanation thereofwill be omitted.

According to the construction described above, the foot 22R (L) of eachleg 2 is given six degrees of freedom relative to the body 3. During atravel, such as walking, of the robot 1, desired motions of the two feet22R and 22L can be accomplished by driving 6*2=12 joints of the two legs2, 2 together (“*” in the present description denotes multiplication asscalar calculation, while it denotes an outer product in vectorcalculation) at appropriate angles. This arrangement enables the robot 1to arbitrarily move in a three-dimensional space. Furthermore, each arm5 can perform a motion, such as arm swinging, by rotating its shoulderjoint, the elbow joint, and the wrist joint.

As shown in FIG. 1, a publicly known six-axis force sensor 50 isprovided between the ankle joints 18R (L), 20R (L) and the foot 22R (L)of each leg 2. The six-axis force sensor 50 detects primarily whetherthe foot 22R (L) of each leg 2 is in contact with the ground, and afloor reaction force (landing load) acting on each leg 2, and it outputsdetection signals of three-direction components Fx, Fy, and Fz of atranslational force of the floor reaction force and three-directioncomponents Mx, My, and Mz of a moment to the control unit 60.Furthermore, the body 3 is equipped with a posture sensor 54 fordetecting an inclination angle of the body 3 relative to a Z-axis(vertical direction (gravitational direction)) and an angular velocitythereof, and a rotational angle (yaw angle) of the body 3 about theZ-axis and an angular velocity thereof, detection signals thereof beingoutput from the posture sensor 54 to the control unit 60. The posturesensor 54 is provided with a three-axis direction accelerometer and athree-axis direction gyro sensor, which are not shown. These detectionsignals of these sensors are used to detect posture angles (aninclination angle and a yaw angle) of the body 3 and an angular velocitythereof, and also used to estimate a self position/posture of the robot1. Although detailed structures are not shown, each joint of the robot 1is provided with an electric motor 64 (refer to FIG. 3) for driving thejoint, and an encoder (rotary encoder) 65 (refer to FIG. 3) fordetecting a rotational amount of the electric motor 64 (a rotationalangle of each joint). Detection signals of the encoder 65 are outputfrom the encoder 65 to the control unit 60.

Furthermore, although not shown in FIG. 1, a joystick (operating device)73 (refer to FIG. 3) is provided at an appropriate position of the robot1. The joystick 73 is constructed in such a manner that a requestregarding a gait of the robot 1, such as a request for turning the robot1 that is traveling straight, is input to the control unit 60 asnecessary by operating the joystick 73.

FIG. 2 is a diagram schematically showing a basic construction of adistal portion (including each foot 22R (L)) of each leg 2 in theembodiment. As shown in the diagram, a spring mechanism 70 is installedbetween each foot 22R (L) and the six-axis force sensor 50, and a footsole elastic member 71 made of rubber or the like is bonded to a footsole (the bottom surface of each foot 22R (L)). These spring mechanism70 and the foot sole elastic member 71 constitute a compliance mechanism72. The spring mechanism 70, which will be discussed in detail later, isconstructed of a square guide member (not shown), which is installed onthe upper surface of the foot 22R (L), and a piston-shaped member (notshown) installed adjacently to the ankle joint 18R (L) (the ankle joint20R (L) being omitted in FIG. 2) and the six-axis force sensor 50, andhoused in the guide member through the intermediary of an elastic member(rubber or spring) so that it may be jogged.

The foot 22R (L) indicated by a solid line shown in FIG. 2 is in a statewhere it is subjected to no floor reaction force. When each leg 2 issubjected to a floor reaction force, the spring mechanism 70 and thefoot sole elastic member 71 of the compliance mechanism 72 flex, causingthe foot 22R (L) to shift to the position/posture illustrated by adashed line in the figure. The structure of the compliance mechanism 72is important not only to ease a landing impact but also to enhancecontrollability, as explained in detail in, for example, JapaneseUnexamined Patent Publication Application No. 5-305584 previouslyproposed by the present applicant.

FIG. 3 is a block diagram showing a construction of the control unit 60.The control unit 60 is comprised of a microcomputer, and includes afirst calculator 90 and a second calculator 92 formed of CPUs, an A/Dconverter 80, a counter 86, a D/A converter 96, a RAM 84, a ROM 94, anda bus line 82 for transferring data among them. In the control unit 60,output signals of the six-axis force sensor 50 of each leg 2, theposture sensor 54 (an accelerometer and a rate gyro sensor), thejoystick 73, etc. are converted into digital values by the A/D converter80 and sent to the RAM 84 via the bus line 82. Outputs of the encoder 65(rotary encoder) of each joint of the robot 1 are supplied to the RAM 84via the counter 86.

As will be discussed hereinafter, the first calculator 90 generatesdesired gaits, calculates a joint angle displacement command (a commandvalue of a displacement angle of each joint or a rotational angle ofeach electric motor 64), and sends the calculation result to the RAM 84.The second calculator 92 reads the joint angle displacement command andan actual measurement value of a joint angle detected on the basis of anoutput signal of the encoder 65 from the RAM 84 to calculate amanipulated variable required for driving each joint, and outputs thecalculated variable to the electric motor 64 for driving each jointthrough the intermediary of the D/A converter 96 and a servo amplifier64 a.

FIG. 4 is a block diagram showing the entire functional construction ofa control device of the legged mobile robot in accordance with theembodiment. A portion except for the “actual robot” in FIG. 4 isconstituted by processing functions implemented by the control unit 60(primarily the functions of the first calculator 90 and the secondcalculator 92). In the following explanation, the symbols R and L willbe omitted as long as it is not particularly necessary to discriminateright and left of the legs 2 and the arms 5.

The explanation will now be given. The control unit 60 is equipped witha gait generating device 100 for generating desired gaits of the robot 1freely in real time and outputting them. The functions of the gaitgenerating device 100 constitute individual means of the presentinvention. A desired gait output by the gait generating device 100 isconstituted of a desired body position/posture trajectory (trajectory ofa desired position and a desired posture of the body 3), a desired footposition/posture trajectory (trajectory of a desired position and adesired posture of each foot 22), a desired arm posture trajectory(trajectory of a desired posture of each arm 5), a desired total floorreaction force central point (desired ZMP) trajectory, and a desiredtotal floor reaction force trajectory. If a movable part relative to thebody 3 is provided in addition to the legs 2 and the arms 5, then adesired position/posture trajectory of the movable part is added to thedesired gait.

Here, the term “trajectory” in the above gait means a temporal changepattern (time series pattern), and may be referred to as “pattern” inplace of “trajectory” in the following explanation. Furthermore, a“posture” means a spatial orientation. Specifically, for example, aposture of a body is represented by an inclination angle of the body 3in the roll direction (about the X-axis) relative to the Z-axis(vertical axis), an inclination angle of the body 3 in the pitchdirection (about the Y-axis), and a rotational angle (yaw angle) of thebody 3 in the yaw direction (about the Z-axis). A foot posture isrepresented by means of a spatial azimuth of two axes fixedly set oneach foot 22. In the present description, a body posture may be referredto as a body posture angle.

In the following explanation, the term “desired” will be frequentlyomitted when there is no danger of misunderstanding. Furthermore, amonggaits, those gaits related to constituent elements other than thoserelated to a floor reaction force, that is, the gaits related to motionsof the robot 1, such as a foot position/posture and a bodyposition/posture, will be collectively referred to as “motion.” A floorreaction force (floor reaction force comprised of a translational forceand a moment) acting on each foot 22 is referred to as “each-foot floorreaction force”, and a resultant force of the “each-foot floor reactionforces” of all (two) feet 22R and 22L of the robot 1 will be referred toas a “total floor reaction force”. In the following explanation,however, each-foot floor reaction force will hardly be referred to, sothat “floor reaction force” will be handled as having the same meaningas “total floor reaction force” unless otherwise specified.

A desired floor reaction force is generally expressed by a point ofaction and a translational force and the moment acting on the point. Thepoint of action may be set at any location, so that innumerableexpressions are possible for the same desired floor reaction force. If,however, a desired floor reaction force is expressed using especially adesired floor reaction force central point (a desired position of thecentral point of a total floor reaction force) as the point of action,then the moment component of the desired floor reaction force will bezero except for a vertical component (the moment about the vertical axis(Z-axis)). In other words, the horizontal component of the moment of thedesired floor reaction force about the desired floor reaction forcecentral point (the moment about the horizontal axis (the X-axis and theY-axis)) will be zero.

In the case of a gait that satisfies dynamic balance conditions, a ZMPcalculated from a desired motion trajectory of the robot 1 (a point atwhich the moment of a resultant force of an inertial force and gravitycalculated from the desired motion trajectory acts about the pointbecomes zero except for a vertical component) agrees with a desiredfloor reaction force central point. Therefore, providing a desired ZMPtrajectory may be regarded as equivalent to providing a desired floorreaction force central point trajectory (refer to, for example, PCTKokai publication WO/02/40224 by the present applicant, for moredetail).

From the background described above, in the description of PCT Kokaipublication WO/02/40224, a desired gait has been defined as follows.

-   a) In a broad sense, a desired gait is a combination of a desired    motion trajectory and a desired floor reaction force trajectory    thereof in a period of one step or a plurality of steps.-   b) In a narrow sense, a desired gait is a combination of a desired    motion trajectory and a ZMP trajectory thereof in a period of one    step.-   c) A series of gaits is formed of several gaits that are connected.

In walking, once a vertical position of the body 3 of the robot 1 (aheight of the body) is determined by a body height determining techniqueproposed previously in Japanese Unexamined Patent ApplicationPublication No. 10-86080 by the present applicant, a translational floorreaction force vertical component is subordinately determined.Furthermore, a translational floor reaction force horizontal componentis also determined by determining the horizontal body positiontrajectory of the robot 1 such that the horizontal component of themoment produced about a desired ZMP by a resultant force of the inertialforce and the gravity generated by the motion of a desired gait becomeszero. For this reason, a desired ZMP alone has been adequate as aphysical amount to be explicitly set for the floor reaction force of adesired gait in the description of PCT Kokai publication WO/02/40224.Thus, the definition in the above b) has been adequate as the definitionof a desired gait in the narrow sense. However, in the running gait ofthe robot 1 explained in the embodiment (the details will be describedhereinafter), a floor reaction force vertical component (a translationalfloor reaction force vertical component) is also important for control.In the present invention, therefore, a desired trajectory of the floorreaction force vertical component is explicitly set, and then atrajectory of a desired vertical body position or the like of the robot1 is determined. Hence, in the present description, the following b′)will be adopted as the definition of a desired gait in a narrow sense.b′) A desired gait in a narrow sense is a combination of a desiredmotion trajectory and a desired ZMP trajectory thereof, and a desiredtranslational floor reaction force vertical component trajectory in aone-step period.

In the present description, a desired gait used hereinafter will meanthe desired gait in the narrow sense of the above b′) unless otherwisespecified for the purpose of easy understanding. In this case, “onestep” of a desired gait will mean a period from the moment one leg 2 ofthe robot 1 touches the ground to the moment the other leg 2 touches theground. Supplementally, in the embodiment, a desired gait is used tomean a gait for one-step period. This, however, does not have to benecessarily the one-step period; it may alternatively be a period for aplurality of steps or a period that is shorter than one step (e.g., ahalf step). In the following explanation, “floor reaction force verticalcomponent” will mean “translational floor reaction force verticalcomponent,” and the term “moment” will be used for the verticalcomponent (the component about the vertical axis) of a moment of a floorreaction force so as to distinguish it from the “floor reaction forcevertical component.” Similarly, “floor reaction force horizontalcomponent” will mean “translational floor reaction force horizontalcomponent.”

Needless to say, a double stance period in a gait refers to a periodduring which the robot 1 supports its own weight by the two legs 2, 2. Asingle stance period refers to a period during which the robot 1supports its own weight only by one leg 2, and a floating period refersto a period during which both legs 2, 2 are apart from a floor (floatingin the air). In the single stance period, the leg 2 not supporting theself-weight of the robot 1 is referred to as a “free leg.” The runninggait explained in the present embodiment does not have the double stanceperiod, but alternately repeats the single stance period (landingperiod) and the floating period. In this case, during the floatingperiod, both legs 2, 2 do not support the self-weight of the robot 1;however, the leg 2 that was a free leg and the leg 2 that was asupporting leg during a single stance period immediately before thefloating period will be referred to as a “free leg” and a “supportingleg,” respectively, even in the floating period.

Taking the running gait shown in FIG. 5 as an example, an outline of adesired gait generated by the gait generating device 100 will beexplained. More definitions and details related to gaits have been givenalso in Japanese Unexamined Patent Application Publication No. 10-86081previously proposed by the present applicant, so that the following willmainly give a description not covered by the Japanese Unexamined PatentApplication Publication No. 10-86081.

First, the running gait shown in FIG. 5 will be explained. This runninggait is a gait similar to a typical human running gait. In this runninggait, the single stance period in which the foot 22 of only either theright or left leg 2 (supporting leg) of the robot 1 lands (contacts theground) and a floating period in which both the legs 2, 2 float in theair are alternately repeated. In FIG. 5, the first state illustrates astate wherein a single stance period has begun (initial stage), thesecond state illustrates a state of a midpoint of the single stanceperiod, the third state illustrates a state wherein a floating periodfollowing the single stance period has begun (an end of the singlestance period), the fourth state illustrates a state of a midpoint ofthe floating period, and the fifth state illustrates an end of thefloating period (a start of the next single stance period).

In this running gait, the robot 1 lands at the heel of the foot 22 ofthe supporting leg (the leg 2 on the front side in the advancingdirection of the robot 1) at the beginning of the single stance period,as shown in the first state of FIG. 5. Subsequently, the robot 1 bringssubstantially the entire surface of the sole of the landed foot 22 (thefoot 22 of the supporting leg) into contact with the ground as shown inthe second state of FIG. 5, and then kicks the floor with the tiptoe ofthe foot 22 (the foot 22 of the leg 2 on the rear side with respect tothe advancing direction of the robot 1 in the third state of FIG. 5) ofthe supporting leg to jump into the air, as shown in the third state ofFIG. 5. This ends the single stance period and starts the floatingperiod at the same time. The free leg in the single stance period existsbehind the supporting leg at the beginning of the single stance period,as shown in the first state of FIG. 5, but swung out to the front of thesupporting leg toward the next predetermined landing position, as shownin the second and the third states of FIG. 5. Next, following thefloating period shown in the fourth state of FIG. 5, the robot 1 landsat the heel of the foot 22 of the free leg (the leg 2 that was the freeleg in the single stance period immediately before the floating periodstarted), and the next single stance period is begun.

Considering the running gait shown in FIG. 5, a basic outline of adesired gait generated by the gait generating device 100 will beexplained. Although more details will be discussed later, when the gaitgenerating device 100 generates a desired gait, basic required values(required parameters) for generating the desired gait, such as a landingposition/posture (expected landing position/posture) of the foot 22 of afree leg and a landing time (expected landing time), are supplied to thegait generating device 100 according to a required operation or the likeof the joystick 73. The gait generating device 100 then generates thedesired gait using the required parameters. More detailedly, the gaitgenerating device 100 determines parameters (referred to as gaitparameters) that specify some constituent elements of the desired gait,such as a desired foot position/posture trajectory and a desired floorreaction force vertical component trajectory of the desired gait, on thebasis of the above required parameters, and then sequentially determinesinstantaneous values of the desired gait by using the gait parameters soas to generate a time series pattern of the desired gait.

In this case, a desired foot position/posture trajectory (to be morespecific, a desired trajectory of each spatial component (X-axiscomponent or the like) of the position and the posture of a foot) isgenerated for each foot 22 by using a finite-duration setting filterproposed in U.S. Pat. No. 3,233,450 by the present applicant. Thisfinite-duration setting filter includes a plurality of stages (3 stagesor more in the present embodiment) of first-order lag filters ofvariable time constants, that is, filters represented in terms of atransfer function of 1/(1+τs) (τ is a variable time constant.Hereinafter, the filter will be referred to as a unit filter), theplurality of stages of the filters being connected in series. Thisarrangement makes it possible to generate and output a trajectory thatreaches a specified value at desired specified time. In this case, timeconstant τ of the unit filter of each stage is always variably set insequence according to remaining time until the above specified timeafter starting the generation of an output of the finite-durationsetting filter. More specifically, the setting is made such that, thevalue of τ is decreased from a predetermined initial value (>0) as theremaining time reduces, and the value of τ finally reaches zero at thespecified time at which the remaining time reaches zero. A step input ofa height based on the specified value (more specifically, a changeamount from an initial value to the specified value of an output of thefinite-duration setting filter) is supplied to the finite-durationsetting filter. The finite-duration setting filter not only generates anoutput that reaches a specified value at specified time but also makesit possible to set a changing rate of an output of the finite-durationsetting filter at specified time to zero or substantially zero.Especially when three stages or more (3 stages will do) of the unitfilter are connected, the changing acceleration (a differential value ofa changing rate) of an output of the finite-duration setting filter canbe reduced to zero or substantially zero.

The desired foot position/posture trajectory generated by thefinite-duration setting filter as described above is the desiredposition/posture trajectory of each foot 22 on a supporting legcoordinate system, which is fixed on a floor surface and which is to bediscussed later.

The desired foot position/posture trajectory generated as describedabove is generated such that the position of each foot 22 begins moving,while gradually accelerating from the initial in-contact-with-the-groundstate (the state at the initial time of a desired gait) toward anexpected landing position. Further, the desired foot position/posturetrajectory is generated such that the changing rate of the position isgradually decelerated to zero or substantially zero until the expectedlanding time is finally reached, and the expected landing position isreached at the expected landing time at which the trajectory comes toits end. Hence, the ground speed at the moment each foot 22 landsbecomes zero or substantially zero (the changing rate of the position ofeach foot 22 on the supporting leg coordinate system secured to afloor). Accordingly, a landing impact will be low even when the robot 1lands from the state wherein all legs 2, 2 are simultaneously present inthe air (the state in the floating period) in a running gait.

In the aforesaid running gait, the vertical velocity of the body 3switches downward from the latter half of the floating period due to thegravity acting on the robot 1, and remains downward even at the time oflanding. Therefore, if the desired foot position/posture trajectory isgenerated such that the ground speed at the moment each foot 22 landsreaches zero or substantially zero, as described above, and if thedesired position/posture trajectory of the body 3 is generated tosatisfy a dynamic balance condition, as will be discussed later, thenthe relative velocity of the foot 22 of a free leg with respect to thebody 3 switches upward immediately before landing. This means that, at alanding moment of a running gait, the desired gait of the robot 1 issuch that the robot 1 lands while withdrawing the leg 22 that is a freeleg toward the body 3. In other words, according to the desired gait inthe present embodiment, the robot 1 lands while pulling the foot 22 up,as observed from the body 3, so that the ground speed of the foot 22 ofthe free leg reaches zero or substantially zero. This restrains alanding impact to prevent the landing impact from becoming excessive.

Furthermore, in the present embodiment, the finite-duration settingfilter is composed of three stages of more (e.g., three stages) of theunit filters connected in series, so that the velocity of each foot 22(the changing rate of a foot position) reaches zero or substantiallyzero by expected landing time and the acceleration of each foot 22 alsoreaches zero or substantially zero at the expected landing time when thefoot 22 stops. This means that the ground acceleration also becomes zeroor substantially zero at the landing instant. Hence, the landing impactwill be further restrained. Especially, even if actual landing time ofthe robot 1 deviates from desired landing time, the impact no longerincreases much. Supplementally, the number of stages of the unit filtersof the finite-duration setting filter may be two to make setting so thatthe ground speed of each foot 22 reaches zero or substantially zero atexpected landing time. In this case, however, the acceleration of eachfoot 22 at expected landing time does not usually become zero.

Regarding a foot posture, after each foot 22 lands at its heel atexpected landing time, the foot continues to move until substantiallythe entire sole of the foot 22 comes in contact with a floor. For thisreason, the foot posture trajectory is generated by the finite-durationsetting filter, setting the time at which substantially the entire soleof the foot 22 comes in contact with the floor to the above specifiedtime.

In the present embodiment, the foot position trajectory has beengenerated using the finite-duration setting filter. Alternatively,however, a desired foot position trajectory may be generated using afunction, such as a polynomial, that is set such that the changing rateof a foot position at expected landing time (a time differential valueof a foot position) reaches zero or substantially zero and further thechanging acceleration of the foot position at the expected landing time(a time differential value of the changing rate) reaches zero orsubstantially zero. This applies also to the generation of a desiredfoot posture trajectory. However, regarding the generation of thedesired foot posture trajectory, a function, such as a polynomial, isset such that the changing rate of the posture of each foot 22 and thechanging acceleration thereof reaches zero or substantially zero at thetime when substantially the entire sole of each foot 22 comes in contactwith a floor, as described above.

A desired floor reaction force vertical component trajectory is set asshown in, for example, FIG. 6. In the present embodiment, the shape of adesired floor reaction force vertical component trajectory in a runninggait (strictly speaking, the shape in a single stance period) isspecified to be trapezoidal (a shape projecting to an increasing side ofa floor reaction force vertical component). The height of the trapezoidand the time of a bending point are regarded as gait parameters defininga desired floor reaction force vertical component trajectory indetermining the gait parameters (floor reaction force vertical componenttrajectory parameters). In a floating period of a running gait, thedesired floor reaction force vertical component is steadily set to zero.As in the case of the present example, a desired floor reaction forcevertical component trajectory is preferably set so that it is virtuallycontinuous (so that values are not discontinuous). This is for ensuringsmooth operations of joints of the robot 1 when controlling a floorreaction force. The term “virtually continuous” means that a skippedvalue that inevitably takes place when a trajectory that is continuousin an analog fashion (a continuous trajectory in a true meaning) isdigitally expressed by a discrete-time system does not cause thecontinuity of the trajectory to be lost.

A desired ZMP trajectory is set as follows. In the running gait shown inFIG. 5, as described above, the robot 1 lands at the heel of the foot 22of a supporting leg, and then kicks at the tiptoe of the foot 22 of thesupporting leg to jump into the air. Lastly, the robot 1 lands at theheel of the foot 22 of a free leg, as described above. Therefore, asshown in the upper diagram of FIG. 7, the desired ZMP trajectory in thesingle stance period is set such that it takes the heel of the foot 22of the supporting leg as its initial position, and then extends to thecenter in the longitudinal direction of the foot 22 in the period inwhich substantially the entire sole of the foot 22 of the supporting legcomes in contact with the ground, and thereafter, reaches the tiptoe ofthe foot 22 of the supporting leg by floor leaving time. Here, the upperdiagram of FIG. 7 shows a desired ZMP trajectory in an X-axis direction(longitudinal direction), while a lower diagram of FIG. 7 shows adesired ZMP trajectory in a Y-axis direction (lateral direction). Thedesired ZMP trajectory in the Y-axis direction in a single stance periodis set at the same position as the central position of an ankle joint ofa supporting leg 2 in the Y-axis direction, as shown in the lowerdiagram of FIG. 7.

In a running gait, after a single stance period ends, both legs 2, 2leave a floor, and the floor reaction force vertical component becomeszero. When the floor reaction force vertical component is zero, that is,during a floating period, the total center of gravity of the robot 1 issubject to free fall motion, and an angular momentum change about thetotal center of gravity is zero. At this time, the moment of a resultantforce of gravity and an inertial force that acts on the robot 1 is zeroat an arbitrary point of a floor, so that a desired ZMP is indefinite.This means that any point of the floor satisfies a condition of ZMPrepresented by “a point of action at which the horizontal component ofthe moment, in which a resultant force of gravity and an inertial forceacts, is zero.” In other words, setting the desired ZMP at an arbitrarypoint satisfies a dynamic balance condition in that the horizontalcomponent of the moment in which the above resultant force acts aboutthe desired ZMP is zero. Hence, the desired ZMP may be setdiscontinuously. For example, the desired ZMP may be set so that it doesnot move from a desired ZMP position when leaving a floor (when a singlestance period ends) in a floating period, and it moves discontinuously(in steps) to a desired ZMP position for landing at the end of thefloating period. In the present embodiment, however, the position of thedesired ZMP trajectory in the X-axis direction in a floating period hasbeen set so as to continuously move to the landing position of the heelof the foot 22 of a free leg from the tiptoe of the foot 22 of asupporting leg by the time the next free leg 2 lands, as shown in theupper diagram of FIG. 7. Further, as shown in the lower diagram of FIG.7, the position of the desired ZMP trajectory in the Y-axis direction ina floating period has been set so as to continuously move to the Y-axisdirectional position of the center of the ankle joint of a free leg 2from the Y-axis directional position of the center of the ankle joint ofa supporting leg 2 by the time the next free leg 2 lands. In otherwords, the desired ZMP trajectory has been set so that it is continuous(virtually continuous) in all periods of a gait. As it will be discussedhereinafter, a desired gait has been generated so that a moment of theresultant force of gravity and an inertial force (excluding a verticalcomponent) about the desired ZMP becomes zero (to be more specific, adesired body position/posture trajectory has been adjusted). Taking anapproximation error into account, the desired ZMP trajectory isdesirably set to be continuous (virtually continuous) also in a floatingperiod in order to ensure a smooth generated gait. However, a dynamicmodel, which is used in the present embodiment and which will bediscussed later, makes it possible to uniquely generate a desired gaitthat sets the horizontal component of a moment about a desired ZMP tozero independently of the position of a desired ZMP. Therefore, thedesired ZMP does not have to be always continuous.

In the present embodiment, the positions and time of the bending pointsof the desired ZMP trajectory as shown in FIG. 7 are set as ZMPtrajectory parameters (parameters defining the desired ZMP trajectory).The meaning of “virtually continuous” of the aforementioned ZMPtrajectory is the same as that in the case of the above floor reactionforce vertical component trajectory.

The ZMP trajectory parameters are determined such that a high stabilitymargin is secured and no sudden change takes place. Here, a state inwhich a desired ZMP exists near the center of a least convex polygon(so-called supporting polygon) that includes a ground contact surface ofthe robot 1 indicates a high stability margin (refer to JapaneseUnexamined Patent Application Publication No. 10-86081 for more detail).The desired ZMP trajectory shown in FIG. 7 has been set to meet such acondition.

A desired body position/posture, a desired foot position/posture, and areference body posture, which will be discussed hereinafter, aredescribed in terms of a global coordinate system. The global coordinatesystem is a coordinate system fixed to a floor. More specifically, asupporting leg coordinate system to be discussed hereinafter is used asthe global coordinate system.

In the present embodiment, the gait generating device 100 generates areference body posture in addition to a desired body posture. Thereference body posture is a body posture generated directly on the basisof requests regarding a gait (requests from a unit, such as an actionscheduler, or from an external source (the joystick 73 or the like) sentto the gait generating device 100).

A desired body posture (representing hereinafter a desired body postureunless “reference” is added) is generated such that it follows or agreeswith a reference body posture in a long term.

In walking, generally, a desired body posture may be always set to agreewith a reference body posture as in the case of an embodiment disclosedin the description of PCT Kokai publication WO/02/40224. Although thePCT Kokai publication WO/02/40224 does not refer to the concept of areference body posture, it explicitly and preferentially gives desiredbody posture patterns, which is equivalent to steady agreement ofdesired body postures with reference body postures.

However, in a gait including a floating period, as in running, orwalking on a low-friction floor surface, simply adjusting a horizontalbody acceleration or the like is not enough to satisfy a dynamic balancecondition while maintaining a floor reaction force horizontal componentand a floor reaction force vertical component of a desired gait within apermissible range (or within a friction limit) at the same time.

In the present embodiment, therefore, a desired body posture isdeliberately deviated from a reference body posture, as necessary. To bemore specific, motion modes explained below are generated in a combinedmanner so as to satisfy the dynamic balance condition while having afloor reaction force horizontal component and a floor reaction forcemoment vertical component of a desired gait fall within a permissiblerange (or within a friction limit).

As shown in FIG. 8, when the robot 1 is in a certain motion state, ifonly a horizontal body acceleration is perturbated (slightly changed),then a total center-of-gravity horizontal acceleration and an angularmomentum about the total center-of-gravity of the robot 1 areperturbated. More specifically, perturbating the horizontal bodyacceleration perturbates the floor reaction force moment horizontalcomponent about a desired ZMP (a component about the horizontal axis)and the floor reaction force horizontal component without perturbatingthe floor reaction force vertical component that dynamically balanceswith a resultant force of an inertial force and gravity of the robot 1produced by the perturbation of the horizontal body acceleration(without perturbating a total center-of-gravity vertical acceleration ofthe robot 1). The motion mode that perturbs the horizontal bodyacceleration of the robot 1 as described above is referred to as a bodytranslational mode.

In other words, a motion in which the floor reaction force momenthorizontal component about the desired ZMP and the floor reaction forcehorizontal component are changed without changing the floor reactionforce vertical component is referred to as the body translational mode.In the body translational mode, the floor reaction force moment verticalcomponent (the component about the vertical axis) is also perturbated;however, no attention will be paid to this aspect in this case.

A change in the floor reaction force moment horizontal component perunit acceleration at this time is denoted by ΔMp and a change in thefloor reaction force horizontal component per unit acceleration isdenoted by ΔFp. If the body 3 is horizontally accelerated forward in thesituation illustrated in FIG. 8, then ΔMp and ΔFp act in the directionsof the arrows shown in FIG. 8.

To facilitate perceptual understanding, the floor reaction force thatbalances with the resultant force of an inertial force and gravitygenerated by a motion has been used for expression. However, it istheoretically more accurate to express using the resultant force of aninertial force and gravity. The above resultant force and the floorreaction force have the same magnitude but opposite directions.

In comparison with the above, if the body inclination angularacceleration (the angular acceleration of the inclination angle of thebody 3) is perturbated about a certain point Pr from a certain motionstate of the robot 1, as shown in FIG. 9, then the angular momentum(excluding the component about the vertical axis) about the totalcenter-of-gravity is perturbated, while the total center-of-gravity ofthe robot 1 remains unperturbated. This means that perturbating the bodyinclination angle acceleration about the point Pr perturbates the floorreaction force moment horizontal component about a desired ZMP withoutperturbating the floor reaction force vertical component and the floorreaction force horizontal component. The motion mode in which the bodyinclination angle acceleration of the robot 1 is perturbated asdescribed above is referred to as the body inclination mode.

In other words, the motion in which the floor reaction force momenthorizontal component about a desired ZMP is changed without changing afloor reaction force vertical component and a floor reaction forcehorizontal component is referred to as the body inclination mode.

A change in the floor reaction force moment horizontal component perunit angular acceleration at this time is denoted by ΔMr and a change inthe floor reaction force horizontal component per unit angularacceleration is denoted by ΔFr. ΔFr is zero. If an angular accelerationof a body inclination angle is generated to cause the body 3 to leanforward in the situation shown in FIG. 9, then ΔMr acts in the directionof the arrow shown in FIG. 9.

Further, if a body yaw angular acceleration (the rotational angularacceleration about the vertical axis of the body 3) is perturbated abouta certain point Pq from a certain motion state of the robot 1, as shownin FIG. 10, then the angular momentum vertical component about the totalcenter of gravity is perturbated, while the total center of gravity ofthe robot 1 remains unperturbated. Incidentally, if the total center ofgravity of the robot 1 is not perturbated, then the perturbation of theangular momentum vertical component does not depend on a point ofaction. Hence, perturbating the body yaw angular acceleration about thepoint Pq perturbates the floor reaction force moment vertical componentabout a desired ZMP without perturbating the floor reaction forcevertical component, the floor reaction force horizontal component, andthe floor reaction force moment horizontal component. The motion mode inwhich the body yaw angular acceleration of the robot 1 is perturbated asdescribed above is referred to as the body yaw rotation mode.

In other words, the body motion in which the floor reaction force momentvertical component about a desired ZMP is changed without changing afloor reaction force vertical component, a floor reaction forcehorizontal component, and a floor reaction force moment horizontalcomponent is called the body yaw rotation mode.

A change in the floor reaction force moment vertical component per unitangular acceleration at this time is denoted by ΔMbz, and a change inthe floor reaction force horizontal component per unit angularacceleration is denoted by ΔFb. ΔFb is zero. If the body 3 is rotated inthe direction of the arrow at the unit angular acceleration (rotated atan angular acceleration βb=1) in the situation shown in FIG. 10, thenΔMbz acts in the direction of the arrow shown in FIG. 10.

In the motion shown in FIG. 10, the body 3 has been rotated so that thepositions of the distal ends of both arms 5, 5 remain unchanged asobserved from the supporting leg coordinate system (the coordinatesystem fixed to a floor). However, a motion in which an arm 5 is rotatedtogether with the body 3 without changing the relative position/postureof the arm 5 in relation to the body 3 may be defined as the body yawrotation mode. In this case, however, a motion equation to be discussedhereinafter has to be slightly changed.

Further, if the distal ends of both arms 5, 5 are perturbatedlongitudinally in opposite directions from each other from a motionstate of the robot 1, as illustrated in FIGS. 11 (a) and (b), then theangular momentum vertical component about the total center of gravity isperturbated, while the total center of gravity of the robot 1 remainsunperturbated. Hereinafter, this motion mode will be referred to as anantiphase arm swing mode. In other words, the arm swing motion mode inwhich the floor reaction force moment vertical component about a desiredZMP is perturbated without perturbating a floor reaction force verticalcomponent, a floor reaction force horizontal component, and a floorreaction force moment horizontal component is referred to as theantiphase arm swing mode.

A motion in which a right arm 5R is moved forward by a unit amount and aleft arm 5L is moved backward by a unit amount is referred to as anantiphase arm swing of a unit angle. FIGS. 11 (a) and (b) illustrate astate wherein an antiphase arm swing angle is θaz.

A change in the floor reaction force moment vertical component per unitangular acceleration in the antiphase arm swing mode is denoted by ΔMaz,and a change in the floor reaction force horizontal component per unitangular acceleration is denoted by ΔFa. ΔFa is zero. In the situationshown in FIGS. 11 (a) and (b), if the right arm 5R is acceleratedforward, while the left arm 5L is accelerated backward (swinging at anangular acceleration βa>0), then a floor reaction force moment verticalcomponent Maz acts in the direction of the arrow (a positive directionof the vertical axis) shown in FIG. 11 (a).

A description will now be given of a dynamic model of the robot 1 usedin the present embodiment. In the present embodiment, a simplified(approximated) dynamic model shown below is used. However, regarding thedynamic model shown below, a kinematics model (a model representing thestructures and dimensions of joints and links, i.e., a modelrepresenting a relationship between joint displacements and thepositions/postures of links) will be also necessary.

FIG. 12 shows a dynamic model of the robot 1 used in the presentembodiment. As illustrated, the dynamic model is a model composed of atotal of three mass points, namely, two mass points 2 m, 2 mcorresponding to the legs 2 of the robot 1 and a mass point 3 mcorresponding to the body 3, and four flywheels FHx, FHy, FHbz, and FHazhaving inertias but no mass. The flywheels FHx, FHy, FHbz, and FHaz canbe rotated about an X-axis (longitudinal axis), a Y-axis (lateral axis),a Z-axis (vertical axis), and a Z-axis (vertical axis), respectively.This dynamic model is decoupled, that is, the dynamic model isconstructed such that the dynamics (the dynamics of the mass points 2 m,2 m) of the legs 2, 2, the dynamics of the body 3 (the dynamics of themass point 3 m and the flywheels FHx, FHy and FHbz), and the dynamics ofthe arms 5, 5 (the dynamics of the flywheel FHaz) do not interfere witheach other, and the dynamics of the entire robot 1 is represented bytheir linear connection. In addition, a relationship between a motion ofthe body 3 and a floor reaction force is separated into a relationshipbetween a translational motion of the body 3 (body translation mode) anda floor reaction force, a relationship between an inclination motion ofthe body 3 (body inclination mode) and a floor reaction force, arelationship between a yaw rotational motion of the body 3 (body yawrotation mode) and a floor reaction force, and a relationship between anantiphase arm swing motion of both arms 5, 5 (antiphase arm swing mode)and a floor reaction force. To be more specific, a floor reaction forcegenerated by a horizontal motion of the body mass point 3 m correspondsto a floor reaction force generated by a horizontal translational motionof the body 3 (body translation mode), and a floor reaction forcegenerated by a rotational motion of the flywheels FHx and FHycorresponds to a floor reaction force generated by a rotational motionof an inclination angle of the body 3 (body inclination mode). Therotational motion of the flywheel FHx corresponds to the rotationalmotion of an inclination angle of the body 3 in the roll direction(about the X-axis), and the rotational motion of the flywheel FHycorresponds to the rotational motion of an inclination angle of the body3 in the pitch direction (about the y-axis). A floor reaction forcegenerated by the rotational motion of the flywheel FHbz corresponds to afloor reaction force generated by a yaw rotational motion of the body 3(the body yaw rotation mode). A floor reaction force generated by therotational motion of the flywheel FHaz corresponds to a floor reactionforce generated by an antiphase arm swing motion (the antiphase armswing mode).

The mass of the arms of the robot 1 is assumed to be included in thebody 3, and the body mass point 3 m has a mass that includes the mass ofthe arms 5, 5.

For the convenience of explanation, variables and parameters related tothe dynamic model will be defined as follows. Each of the mass points 2m, 2 m and 3 m corresponds to a representative point of a part withwhich it is associated or a point uniquely decided geometrically fromthe position/posture of the part. For instance, the position of the masspoint 2 m of a supporting leg 2 is defined as the point above theaforesaid representative point of the sole of the foot 22 of the leg 2by a predetermined distance.

-   Zsup: Supporting leg mass point vertical position-   Zswg: Free leg mass point vertical position-   Zb: Body mass point vertical position (usually different from a    vertical body position)-   ZGtotal: Overall center-of-gravity vertical position-   Xsup: Supporting leg mass point X position-   Ysup: Supporting leg mass point Y position-   Xswg: Free leg mass point X position-   Yswg: Free leg mass point Y position-   Xb: Body mass point X position (The body mass point position is the    position offset by a predetermined distance in the longitudinal    direction of the body from the aforesaid point Pr. The offset is    determined such that the center-of-gravity position of an exact    model and the center-of-gravity position of the present dynamic    model agree with each other as much as possible in an upright stance    or the like. This is usually different from a horizontal body    position.)-   Yb: Body mass point Y position-   XGtotal: Overall center-of-gravity horizontal X position-   YGtotal: Overall center-of-gravity horizontal Y position-   θbx: Body inclination angle about X-axis relative to vertical    direction-   θby: Body inclination angle about Y-axis relative to vertical    direction-   θbz: Body yaw rotational angle-   θaz: Antiphase arm swing angle-   mb: Body mass point mass-   msup: Supporting leg mass point mass-   mswg: Free leg mass point mass-   mtotal: Total mass of robot (=mb+msup+mswg)-   J: Body inertial moment (Equivalent inertial moment in the body    inclination mode. In other words, this is an inertial moment of FHx    and FHy. Usually, it does not agree with the inertial moment of the    body 3 part of the actual robot 1.)-   Jbz: Body inertial moment about a vertical axis (Equivalent inertial    moment in the body yaw rotation mode. Usually, this does not agree    with the inertial moment of the body 3 part of the actual robot 1.)-   Jaz: Arm swing inertial moment about a vertical axis (Equivalent    inertial moment in antiphase arm swing to cancel a spin. In other    words, it is an inertial moment of FHaz.)-   Fx: Floor reaction force X component (More specifically, a    longitudinal (X-axis) component of a translational floor reaction    force)-   Fy: Floor reaction force Y component (More specifically, a lateral    (Y-axis) component of a translational floor reaction force)-   Fz: Floor reaction force vertical component (More specifically, a    vertical (Z-axis) component of a translational floor reaction force.    This is equivalent to a desired translational floor reaction force    vertical component in the present embodiment.)-   Mx: X component of a floor reaction force moment about a desired ZMP    (More specifically, a component about a longitudinal axis (X-axis)    of a floor reaction force moment)-   My: Y component of a floor reaction force moment about a desired ZMP    (More specifically, a component about a lateral axis (Y-axis) of a    floor reaction force moment)-   Mz: Z component of a floor reaction force moment about a desired ZMP    (More specifically, a component about a vertical axis (Z-axis) of a    floor reaction force moment)

An X position and a Y position of each of the mass points 2 m and 3 mmean a position in the longitudinal direction (X-axis direction) and aposition in the lateral direction (Y-axis direction), respectively. Inthe present embodiment, a positional relationship between a position ofthe mass point 2 m of each leg 2 and a position of the foot 22 of theleg 2 (a position of a predetermined representative point of the foot22) is determined in advance, so that if one of the positions isdecided, then the other position is uniquely decided. Further, apositional relationship between the body mass point 3 m and the positionof the body 3 (a position of a predetermined representative point of thebody 3) is determined in advance on the basis of a posture angle of thebody 3 (hereinafter, regarding the body, a posture angle will mean aninclination angle and a yaw angle), and if a position and a postureangle of one of them are determined, then the position of the other isuniquely determined.

For an arbitrary variable X, dX/dt denotes first order differentiationof X, and d2X/dt2 denotes second order differentiation. Therefore, ifthe variable X denotes displacement, then dX/dt means velocity andd2X/dt2 means acceleration. g denotes a gravity acceleration constant.Here, g takes a positive value.

A motional equation of the above dynamic model (an equation expressing adynamic balance condition) is represented by equation 01, equation 02x,equation 02y, equation 03x, equation 03y, and equation 03z.Fz=mb*(g+d2Zb/dt2)+msup*(g+d2Zsup/dt2)+mswg*(g+d2Zswg/dt2)  Equation 01Fx=mb*d2Xb/dt2+msup*d2Xsup/dt2+mswg*d2Xswg/dt2  Equation 02xFy=mb*d2Yb/dt2+msup*d2Ysup/dt2+mswg*d2Yswg/dt2  Equation 02y

$\begin{matrix}{{M\; x} = {{{mb}*\left( {{Yb} - {Yzmp}} \right)*\left( {g + {d\; 2{{Zb}/{dt}}\; 2}} \right)} - {{mb}*\left( {{Zb} - {Zzmp}} \right)*\left( {d\; 2{{Yb}/{dt}}\; 2} \right)} + {{msup}*\left( {{Ysup} - {Yzmp}} \right)*\left( {g + {d\; 2{{Zsup}/{dt}}\; 2}} \right)} - {{msup}*\left( {{Zsup} - {Zzmp}} \right)*\left( {d\; 2{{Ysup}/{dt}}\; 2} \right)} + {{mswg}*\left( {{Yswg} - {Yzmp}} \right)*\left( {g + {d\; 2{{Zswg}/{dt}}\; 2}} \right)} - {{mswg}*\left( {{Zswg} - {Zzmp}} \right)*\left( {d\; 2{{Yswg}/{dt}}\; 2} \right)} + {J*d\; 2\theta\;{{bx}/{dt}}\; 2}}} & {{Equation}\mspace{14mu} 03x} \\{{M\; y} = {{{- {mb}}*\left( {{Xb} - {Xzmp}} \right)*\left( {g + {d\; 2{{Zb}/{dt}}\; 2}} \right)} + {{mb}*\left( {{Zb} - {Zzmp}} \right)*\left( {d\; 2{{Xb}/{dt}}\; 2} \right)} - {{msup}*\left( {{Xsup} - {Xzmp}} \right)*\left( {g + {d\; 2{{Zsup}/{dt}}\; 2}} \right)} + {{msup}*\left( {{Zsup} - {Zzmp}} \right)*\left( {d\; 2{{Xsup}/{dt}}\; 2} \right)} - {{mswg}*\left( {{Xswg} - {Xzmp}} \right)*\left( {g + {d\; 2{{Zswg}/{dt}}\; 2}} \right)} + {{mswg}*\left( {{Zswg} - {Zzmp}} \right)*\left( {d\; 2{{Xswg}/{dt}}\; 2} \right)} + {J*d\; 2\theta\;{{by}/{dt}}\; 2}}} & {{Equation}\mspace{14mu} 03y} \\{{M\; z} = {{{mb}*\left( {{Xb} - {Xzmp}} \right)*\left( {d\; 2{{Yb}/{dt}}\; 2} \right)} - {{mb}*\left( {{Yb} - {Yzmp}} \right)*\left( {d\; 2{{Xb}/{dt}}\; 2} \right)} + {{msup}*\left( {{Xsup} - {Xzmp}} \right)*\left( {d\; 2{{Ysup}/{dt}}\; 2} \right)} - {{msup}*\left( {{Ysup} - {Yzmp}} \right)*\left( {d\; 2{{Xsup}/{dt}}\; 2} \right)} + {{mswg}*\left( {{Xswg} - {Xzmp}} \right)*\left( {d\; 2{{Yswg}/{dt}}\; 2} \right)} - {{mswg}*\left( {{Yswg} - {Yzmp}} \right)*\left( {d\; 2{{Xswg}/{dt}}\; 2} \right)} + {{Jbz}*d\; 2\theta\;{{bz}/{dt}}\; 2} + {{Jaz}*d\; 2\;\theta\;{{az}/{dt}}\; 2}}} & {{Equation}\mspace{14mu} 03z}\end{matrix}$

Furthermore, for a total center-of-gravity position of the robot, thefollowing relational expressions hold:ZGtotal=(mb*Zb+msup*Zsup+mswg*Zswg)/mtotal  Equation 04XGtotal=(mb*Xb+msup*Xsup+mswg*Xswg)/mtotal  Equation 05xYGtotal=(mb*Yb+msup*Ysup+mswg*Yswg)/mtotal  Equation 05y

The following will show a relationship between the above dynamic modeland the above ΔFp, ΔMp, ΔFr, and ΔMr.

The above ΔFp is a perturbation amount of Fx or Fy when d2Xb/dt2 ord2Yb/dt2 is perturbated by a unit amount in equation 02x or equation02y, so that it is determined according to the following equation:ΔFp=mb  Equation 06

More specifically, the change ΔFp of a floor reaction force horizontalcomponent per unit acceleration in the direction of each horizontal axis(X-axis, Y-axis) in the body translation mode corresponds to the mass ofthe body mass point 3 m of the dynamic model.

The above ΔMp is a perturbation amount of My or Mx when d2Xb/dt2 ord2Yb/dt2 is perturbated by a unit amount in equation 03y or equation03x, so that it is determined according to the following equation:ΔMp=mb*(Zb−Zzmp)  Equation 07

More specifically, the change ΔMp of a floor reaction force momenthorizontal component per unit acceleration in the direction of eachhorizontal axis (X-axis, Y-axis) in the body translation mode isobtained by multiplying a body mass point mass of the dynamic model by aheight (vertical position) of the body mass point 3 m from a desiredZMP. The relationship between the positions of the body mass point 3 mand the desired ZMP and the motion of the body mass point 3 mcorresponds to the behavior of an inverted pendulum obtained when thebody mass point 3 m is associated with an inverted pendulum mass pointand when the desired ZMP is associated with an inverted pendulumsupporting point. To be more accurate, ΔMp in the Y-axis direction isobtained by reversing the sign of the right side of equation 07.

The above ΔFr is a perturbation amount of Fx or Fy when d2θby/dt2 isperturbated by a unit amount in equation 02x or equation 02y, so that itis determined according to the following equation:ΔFr=0  Equation 08

This means that the change ΔFr of a floor reaction force horizontalcomponent per unit acceleration in the direction of each horizontal axis(X-axis, Y-axis) in the body inclination mode is zero.

The above ΔMr is a perturbation amount of Mx or My when d2θbx/dt2 ord2θby/dt2 is perturbated by a unit amount in equation 03x or equation03y, so that it is determined according to the following equation:ΔMr=J  Equation 09

More specifically, the change ΔMr of a floor reaction force momenthorizontal component per unit acceleration in the direction of eachhorizontal axis (X-axis, Y-axis) in the body inclination modecorresponds to the inertial moments of horizontal axis flywheels (FHxand FHy).

More specifically, the change ΔMr of a floor reaction force momenthorizontal component per unit acceleration in the direction of eachhorizontal axis (X-axis, Y-axis) in

The above ΔMbz is a perturbation amount of Mz when d2θbz/dt2 isperturbated by a unit amount in equation 03z, so that it is determinedaccording to the following equation:ΔMbz=Jbz  Equation 09b

More specifically, the change ΔMbz of a floor reaction force momentcomponent per unit acceleration in the body yaw rotation modecorresponds to the inertial moment of a flywheel FHbz corresponding tobody yaw rotation.

The above ΔMaz is a perturbation amount of Mz when d2θaz/dt2 isperturbated by a unit amount in equation 03z, so that it is determinedaccording to the following equation:ΔMaz=Jaz  Equation 09a

More specifically, the change ΔMaz of a floor reaction force momentcomponent per unit angular acceleration of an antiphase arm swingcorresponds to the inertial moment of a flywheel FHaz corresponding toan arm swing.

The gait generating device 100 in the present embodiment generates adesired gait for one step in order, the one step for the desired gait(the desired gait in the narrow sense described above) being from themoment one leg 2 of the robot 1 lands to the moment the other leg 2lands. Hence, for the running gait shown in FIG. 5 to be generated inthe present embodiment, a desired gait from the beginning of a singlestance period to the end of the following floating period (the beginningof the next single stance period) is generated in sequence. Here, adesired gait that is being newly generated will be referred to as a“current time gait,” the next desired gait will be referred to as a“next gait,” and a desired gait after next will be referred to as a“next but one time gait.” Furthermore, a desired gait generated one stepbefore the “current time gait” will be referred to as a “last timegait.”

When the gait generating device 100 newly generates a current time gait,expected positions/postures of landing of the foot 22 of a free leg andrequired values (requests) of expected landing time for the next twosteps of the robot 1 are input as required parameters to the gaitgenerating device 100 (or the gait generating device 100 reads therequired parameters from a memory). Then, the gait generating device 100uses these required parameters to generate a desired bodyposition/posture trajectory, a desired foot position/posture trajectory,a desired ZMP trajectory, a desired floor reaction force verticalcomponent trajectory, a desired arm posture trajectory, etc. At thistime, some of the gait parameters specifying these trajectories arecorrected, as necessary, to secure continuity of walking.

Taking the generation of the running gait shown in FIG. 5 as an example,gait generation processing of the gait generating device 100 will beexplained in detail with reference to FIG. 13 to FIG. 46. FIG. 13 is aflowchart (structured flowchart) illustrating a main routine of the gaitgeneration processing carried out by the gait generating device 100.

First, various initializing operations, including initialization of timet to zero, are performed in S010. This processing is implementedprimarily when starting up the gait generating device 100. Next, theprocessing proceeds to S014 via S012 and waits for a timer interrupt foreach control cycle (the calculation processing cycle of the flowchartshown in FIG. 13). The control cycle is denoted by Δt.

Then, the processing proceeds to S016 and determines whether a shift ina gait is taking place. If a shift in the gait is taking place, then theprocessing proceeds to S018, or if a shift in a gait is not takingplace, then it proceeds to S030. Here, “the shift in a gait” means atiming at which the generation of the last time gait has been completedand the generation of the current time gait is about to start. Forinstance, a control cycle following the control cycle in which thegeneration of a last time gait has been completed refers to the shift ina gait.

When proceeding to S018, time t is initialized to zero. The gaitgenerating device 100 then proceeds to S020 and reads a next time's gaitsupporting leg coordinate system, a next but one time's gait supportingleg coordinate system, a current time gait cycle, and a next time gaitcycle. These supporting leg coordinate systems and the gait cycles aredetermined by the above required parameters. More specifically, in thepresent embodiment, the required parameters supplied to the gaitgenerating device 100 from the joystick 73 or the like include requiredvalues of expected landing positions/postures (foot positions/posturesin a state wherein the foot 22 has been rotated without slippage suchthat its sole is substantially in full contact with a floor surfaceafter landing) and expected landing time of the foot 22 of a free legfor up to two steps ahead. The required value for the first step and therequired value for the second step are supplied to the gait generatingdevice 100 as the values associated with a current time gait and a nexttime gait, respectively, before the generation of the current time gaitis begun (the shift in a gait in S016 mentioned above). These requiredvalues can be changed in the middle of generating the current time gait.

Then, the next time's gait supporting leg coordinate system isdetermined on the basis of the required value of the expected landingposition/posture of the free leg foot 22 of the first step (the free legfoot 22 in the current time gait) in the above required parameters.

Referring to, for example, FIG. 16, it is assumed that the requiredvalue for an expected landing position/posture of the free leg foot 22(22L in the figure) related to the current time gait (first step)specifies a position/posture obtained by moving by xnext and ynext inthe X-axis direction (in the longitudinal direction of a supporting legfoot 22R of the current time gait) and in the Y-axis direction (in thelateral direction of the supporting leg foot 22R of the current timegait), respectively, of a current time's gait supporting leg coordinatesystem, and by rotating about the Z-axis (about the vertical axis) byθznext with respect to a landing position/posture of the supporting legfoot 22 (22R in the figure) of the current time gait. Here, thesupporting leg coordinate system is a global coordinate system (acoordinate system fixed to a floor) in which a point, at which aperpendicular line extended onto a floor surface from the center of theankle of a supporting leg foot 2 intersects with the floor surface (thispoint agreeing with a representative point of the foot 22 in a state,wherein substantially the entire surface of the sole of the supportingleg foot 22 is in contact with the floor surface in the presentembodiment), in a state wherein the supporting leg foot 22 is set in ahorizontal posture (more generally, a posture parallel to the floorsurface) and substantially the entire surface of the sole of thesupporting leg foot 22 is in contact (in close contact) with the floorsurface, is defined as an origin thereof, and a horizontal plane passingthe origin is defined as an XY plane. In this case, the X-axis directionand the Y-axis direction correspond to the longitudinal direction andthe lateral direction, respectively, of the supporting leg foot 22. Theorigin of the supporting leg coordinate system does not have to agreewith the representative point of the foot 22 (a point representing theposition of the foot 22) in the state wherein substantially the entiresurface of the sole of the supporting leg foot 22 is in contact with thefloor surface. Alternatively, the origin may be set at a point on thefloor surface that is different from the representative point.

At this time, the next time's gait supporting leg coordinate system is acoordinate system that takes, as its origin, the representative point(more specifically, a point on a floor that agrees with therepresentative point) of the foot 22L in a case where the foot 22 islanded according to a required value of the expected landingposition/posture of the free leg foot 22L of the current time gait asillustrated (in a case where the representative point of the foot 22 ismade to agree with the required value of an expected landing positionand the posture (orientation) of the foot 22 is made to agree with therequired value of an expected landing posture). The longitudinaldirection and the lateral direction of the foot 22L in the horizontalplane passing the origin correspond to an X′-axis direction and Y′-axisdirection, respectively.

In the same manner described above, a next but one time's gaitsupporting leg coordinate system (refer to the X″ Y″ coordinates shownin FIG. 16) is determined on the basis of the required values for theexpected landing position/posture of the free leg foot 22 of the secondstep. A current time gait cycle is determined as the duration from theexpected landing time (required value) of the supporting leg foot 22 ofthe current time gait to the expected landing time (required value) ofthe free leg foot 22 of the first step (current time gait). The nexttime gait cycle is determined as the duration from the expected landingtime (required value) of the free leg foot 22 of the first step to theexpected landing time (required value) of the free leg foot 22 of thesecond step.

The required parameters are input to the gait generating device 100 bynecessary operation of the joystick 73 in the present embodiment.Alternatively, however, the required parameters or thepositions/postures and gait cycles of the aforesaid supporting legcoordinate systems associated with the required parameters may be storedin advance as a travel schedule of the robot 1. Alternatively, theaforesaid next time and the next but one time's gait supporting legcoordinate systems and the current time and the next time gait cyclesmay be determined on the basis of commands (requests) from amanipulation device, such as the joystick 73, and a travel history ofthe robot 1 up to that moment.

Subsequently, the processing proceeds to S022 wherein the gaitgenerating device 100 determines gait parameters of a normal turninggait as a virtual cyclic gait that follows the current time gait. Thegait parameters include a foot trajectory parameter defining a desiredfoot position/posture trajectory, a reference body posture trajectoryparameter defining a body posture trajectory to be based on, a referencearm posture trajectory parameter defining an arm posture trajectory tobe based on, a ZMP trajectory parameter defining a desired ZMPtrajectory, and a floor reaction force vertical component trajectoryparameter defining a desired floor reaction force vertical componenttrajectory in the normal turning gait. Furthermore, parameters thatdefine a floor reaction force horizontal component permissible range anda floor reaction force moment vertical component permissible range arealso included in gait parameters.

In the present description, “the normal turning gait” is used to mean acyclic gait that does not cause discontinuity in motional states (statesof foot position/posture, body position/posture, etc.) of the robot 1 ina boundary of gait when the gait is repeated (the boundary of a gait foreach step in the present embodiment). Hereinafter, “the normal turninggait” may be abbreviated as “the normal gait.”

According to the present embodiment, the normal turning gait, which is acyclic gait, may be defined as follows. A gait for two steps of therobot 1, i.e., a gait composed of a first turning gait following acurrent time gait and a second turning gait following the first turninggait, is defined as the gait for one cycle of the normal turning gait,and the normal turning gait consists of a repetition of the gait for onecycle. The term “turning” is used here, because it would mean straightadvancement when the turning rate is set to zero, and straightadvancement can be also included in turning in a broad sense. If adesired gait to be generated is the running gait shown in FIG. 5, then acurrent time gait of the desired gait is a running gait that has asingle stance period and a floating period. Hence, the first turninggait and the second turning gait of the normal turning gait are bothgaits that also have a single stance period and a floating period, as inthe current time gait. In other words, a basic gait form of the firstturning gait and the second turning gait is the same as that of thecurrent time gait.

Supplemental explanation of the normal turning gait will be added. In abipedal mobile robot, the normal turning gait for one cycle requiresgaits in the aforesaid narrow sense for at least two steps. It isfurther possible to set a complicated normal turning gait composed ofgaits of three steps or more as the gaits for one cycle. Thenormal-turning gait, however, is used only to determine a divergentcomponent (to be discussed in detail hereinafter) at the end (finishtime) of the current time gait. Therefore, using the normal turning gaitcomposed of the gaits of three or more steps for one cycle will provideless effect, while the complicated processing for generating the gait isinvolved. For this reason, the gaits for one cycle in the normal turninggait in the present embodiment include gaits for two steps (the firstand the second turning gaits). For a legged mobile robot having three ormore feet, the number of gaits for defining the normal turning gait willincrease accordingly. In the following description, for the convenienceof explanation, the normal turning gait composed of a plurality of gaitsin the narrow sense (the gaits for two steps in the present embodiment)will be regarded as the gait of one step.

A normal turning gait is prepared for provisional use by the gaitgenerating device 100 to determine motional states of the robot 1,including a divergent component or a vertical body position/velocity,and a body posture angle and an angular velocity thereof at the end of acurrent time gait; it is not directly output from the gait generatingdevice 100.

The term “divergence” means that the position of the body 3 of thebipedal mobile robot 1 is undesirably shifted to a position away fromthe positions of both feet 22 and 22, as shown in FIG. 14. The value ofa divergent component is a numeral value indicating how far the positionof the body 3 of the bipedal mobile robot 1 is away from the positionsof both feet 22 and 22 (to be more specific, the origin of a globalcoordinate system (a supporting leg coordinate system) set on thesurface with which a supporting leg foot 22 is in contact).

In the present embodiment, gaits are generated using a divergentcomponent as an indicator so that a desired gait can be continuouslygenerated without causing the divergence. However, even if it is aninitial divergent component (divergent component at initial time of thenormal turning gait) of a normal gait, which is a typical example of acontinuous gait (a cyclic gait that permits repetition of a gait of thesame pattern without causing discontinuity of a gait trajectory, andthat does not theoretically diverge after an infinite number ofrepetitions), the initial divergent component is not simply zero. Theinitial divergent component changes if a parameter of a normal gaitchanges. In other words, a proper divergent component changes accordingto a gait form, such as the manner of walking or the manner of running,or the like. In the present embodiment, therefore, a normal gaitfollowing a current time gait to be generated is set on the basis ofrequired parameters involved in the current time gait, and the initialdivergent component of the normal gait is determined, and then a currenttime gait is generated such that the divergent component at the end ofthe current time gait agrees with the initial divergent component of thenormal gait (more generally, the current time gait is made to continueor approximate to the normal gait). The basic guideline for generatingsuch gaits is the same as that disclosed in PCT Kokai publicationWO/02/40224 previously proposed by the present applicant.

The embodiment of the present invention does not use a linear dynamicmodel with three mass points used in the first embodiment of PCT Kokaipublication WO/02/40224. Nevertheless, the concept of the divergentcomponent and the convergent component defined by the equation givenbelow can be applied with adequate approximate accuracy to aperturbation of a behavior of a nonlinear dynamic model such as the oneshown in FIG. 12.Divergent component=Body mass point horizontal position+Body mass pointhorizontal velocity/ω0  Equation 10Convergent component=Body mass point horizontal position−Body mass pointhorizontal velocity/ω0′  Equation 11

where the body mass point horizontal position in this case indicates abody mass point horizontal position Xb in the dynamic model shown inFIG. 12.

ω0 and ω0′ take predetermined values. The values of these ω0 and ω0′ aresubstantially the same, although they do not exactly coincide. Further,the values for generating walking gaits in PCT Kokai publicationWO/02/40224 must be slightly changed for running.

More details of the divergent component and the convergent componenthave been given in PCT Kokai publication WO/02/40224, so that no moredescription will be given here.

In the present embodiment, in addition to the method disclosed in PCTKokai publication WO/02/40224, a gait parameter defining a desired floorreaction force vertical component trajectory is set, and a totalcenter-of-gravity vertical position of the robot 1 is determined so asto dynamically satisfy the desired floor reaction force verticalcomponent, as will be discussed hereinafter. In this case, a secondorder integrated value of the floor reaction force vertical componentwill define the total center-of-gravity vertical position of the robot1. Hence, if the desired floor reaction force vertical component isimproperly set, then the total center-of-gravity vertical position orthe vertical body position of the robot 1 will be too high or too low.Therefore, the method for setting a desired floor reaction forcevertical component is also an important issue. However, the relationshipbetween a floor reaction force vertical component and a vertical bodyposition is similar to the relationship between ZMP and a horizontalbody position, so that a technique for determining a desired ZMP forsetting a proper horizontal body position/velocity can be applied to thetechnique for determining a desired floor reaction force verticalcomponent for setting a proper vertical body position/velocity simply byslightly changing a part thereof, as shown in the following presentembodiment.

Returning to the main subject, in S022, the processing below is carriedout according to the flowchart shown in FIG. 15.

First, in S100, a foot trajectory parameter among the gait parameters ofa normal gait is determined to provide a foot position/posturetrajectory composed of a current time gait, a first turning gait, and asecond turning gait in succession in this order. The following willexplain a specific setting method with reference to FIG. 16. In thefollowing explanation, the foot 22 of a supporting leg 2 will bereferred to as the supporting leg foot and the foot 22 of a free leg 2will be referred to as the free leg foot. Further, “start” and “end”will mean start time and end time of a gait or instantaneous gaits atthe start time and the end time.

The foot trajectory parameter is constructed primarily of thepositions/postures of a supporting leg foot and a free leg foot,respectively, at the start and the end, respectively, of a first turninggait and a second turning gait, and a gait cycle of each turning gait.In the foot trajectory parameter, the free leg foot position/posture atthe start of the first turning gait is defined as the supporting legfoot position/posture at the end of a current time gait observed from anext time's gait supporting leg coordinate system. In this case, in arunning gait, the supporting leg foot 22 at the end of the current timegait is moving in the air. And the supporting leg foot position/postureat the end of the current time gait is determined by generating arequired value of an expected landing position/posture of the free legfoot 22 of a second step in the required parameter (a required value ofan expected landing position/posture in a next time gait of thesupporting leg foot 22 of the current time gait) or a footposition/posture trajectory for reaching a free leg position/posture atthe end of the next time gait determined on the basis of a next but onetime's gait supporting leg coordinate system that corresponds to theabove required value (more specifically, the trajectory observed from anext time's gait supporting leg coordinate system) from the supportingleg foot position/posture at the start of the current time gait (=thefree leg foot position/posture at the end of the last time gait) byusing the finite-duration setting filter until the end of the currenttime gait.

The free leg foot position/posture at the end of the next time gait isdetermined such that the position/posture of the foot, which is obtainedwhen the foot 22 is turned from that position/posture by a predeterminedangle in the pitch direction until it reaches a horizontal posture bylowering its tiptoe while holding the foot 22 in contact with theground, agrees with the position/posture in the next but one time's gaitsupporting leg coordinate system. In other words, the free leg footposition/posture at the end of the next time gait is theposition/posture of the foot 22 in a state wherein the foot 22 has beenturned, from a required value of the landing position/posture of thefree leg foot 22 of the second step in the required parameter, by apredetermined angle in the pitch direction by lifting its tiptoe whileholding the foot 22 in contact with the ground so that it does not slip(a state wherein the heel has been landed with the tiptoe raised).

Further, the supporting leg foot position/posture at the start of thefirst turning gait is defined as the free leg foot position/posture atthe end of the current time gait observed from the next time's gaitsupporting leg coordinate system. In this case, the free leg footposition/posture at the end of the current time gait is determined onthe basis of the above next time's gait supporting leg coordinate systemor a required value of an expected landing position/posture of the freeleg of the first step (the current time gait) of the required parametercorresponding thereto, as in the case of the free leg footposition/posture at the end of the next time gait. In other words, thefree leg foot position/posture at the end of the current time gait isdetermined such that a representative point of the foot, which isobtained when substantially entire surface of the sole of the foot 22 isbrought into contact with a floor surface by turning the foot 22 fromthe position/posture so as to lower its tiptoe while holding the foot 22in contact with the ground, agrees with the origin of the next time'sgait supporting leg coordinate system.

The free leg foot position/posture at the end of the first turning gaitis determined on the basis of a position/posture on the next but onetime's gait supporting leg coordinate system observed from the nexttime's gait supporting leg coordinate system, as with the technique fordetermining the free leg foot position/posture at the end of the currenttime gait or the free leg foot position/posture at the end of the nexttime gait. To be more specific, the free leg foot position/posture atthe end of the first turning gait is set such that the position/postureof the foot, which is obtained when the foot 22 is turned from thatposition/posture by a predetermined angle until it reaches a horizontalposture while avoiding a slippage and while holding the foot 22 incontact with the ground, agrees with the position/posture in the nextbut one time's gait supporting leg coordinate system as observed fromthe next time's gait supporting leg coordinate system.

At the end of the first turning gait, the supporting leg foot 22 is inthe air, being off the floor. To determine the trajectory after thesupporting leg foot 22 leaves the floor, an expected landingposition/posture of the supporting leg foot of the first turning gait isset. The expected landing position/posture of the supporting leg foot ofthe first turning gait is set on the basis of a position/posture on anext but two time gait supporting leg coordinate system observed fromthe next time's gait supporting leg coordinate system. To be morespecific, the expected landing position/posture of the supporting legfoot of the first turning gait is the position/posture on the next buttwo time gait supporting leg coordinate system observed from the nexttime's gait supporting leg coordinate system. The next but two time gaitsupporting leg coordinate system is set such that the relativeposition/posture relationship between the next but one time's gaitsupporting leg coordinate system and the next but two time gaitsupporting leg coordinate system agrees with the relativeposition/posture relationship between the current time's gait supportingleg coordinate system and the next time's gait supporting leg coordinatesystem.

The supporting leg foot position/posture at the end of the first turninggait is determined by generating a foot position/posture trajectory forreaching the expected landing position/posture of the supporting legfoot of the first turning gait from the supporting leg footposition/posture at the start of the first turning gait (morespecifically, the trajectory observed from a next time's gait supportingleg coordinate system) by using the finite-duration setting filter untilthe end of the first turning gait, as in the case where the supportingleg foot position/posture at the start of the first turning gait isdetermined.

The free leg foot position/posture at the start of the second turninggait is regarded as the supporting leg foot position/posture at the endof the first turning gait observed from the next but one time's gaitsupporting leg coordinate system. The supporting leg footposition/posture at the start of the second turning gait is regarded asthe free leg foot position/posture at the end of the first turning gaitobserved from the next but one time's gait supporting leg coordinatesystem.

The free leg foot position/posture at the end of the second turning gaitis regarded as the free leg foot position/posture at the end of thecurrent time gait observed from the current time's gait supporting legcoordinate system. The supporting leg foot position/posture at the endof the second turning gait is regarded as the supporting leg footposition/posture at the end of the current time gait observed from thecurrent time's gait supporting leg coordinate system.

The gait cycles of the first turning gait and the second turning gaitare set to be identical to a next time gait cycle. These gait cycles ofthe first turning gait and the second turning gait do not have to be thesame with each other; however, both cycles are preferably determined onthe basis of at least a next time gait cycle. Motion parameters(including a time parameter, such as double stance period duration)other than the current time gait, the first turning gait, and the secondturning gait are determined, as necessary, so as to satisfy gaitconditions (such as an actuator velocity falling within a permissiblerange, a movable angle being not exceeded, and no interference with afloor or the like) on the basis of the parameters determined above.

Next, the processing proceeds to S102 and determines a reference bodyposture trajectory parameter that defines the reference body posturetrajectory to be followed by a desired body posture. The reference bodyposture does not have to be constant as long as it is set to ensureconnection at the start (the start of the first turning gait) and theend (the end of the second turning gait) of a normal gait (to ensurethat the posture angle of the reference body posture and the angularvelocity thereof at the start of a normal gait agrees with those at theend of the normal gait). In the present embodiment, however, for thepurpose of easy understanding, a posture related to an inclination angle(an inclination angle relative to the vertical direction) in thereference body posture is set to an upright posture (vertical posture).This means that, in the present embodiment, the reference body posturerelated to an inclination angle of the body 3 is set to the uprightposture in all periods of the normal gait. Accordingly, in the presentembodiment, the angular velocity and angular acceleration of aninclination angle of the reference body posture is zero. A yaw angletrajectory (hereinafter referred to also as a reference yaw angletrajectory) θbz of the reference body posture may be, for example, amotion at a constant angular velocity (an average turning velocity of anormal gait), or may take a sinusoidal wave shape, as in the example(FIG. 18) of a reference antiphase arm swing trajectory, which will bediscussed hereinafter. However, the yaw angle trajectory is to be setsuch that a reference yaw angle and its angular velocity are insuccession when the normal gait is repeated.

In the present embodiment, the yaw angle trajectory (hereinafterreferred to also as a desired yaw angle trajectory) of a desired bodyposture is set to agree with a reference yaw angle trajectory.

Subsequently, the processing proceeds to S104 to determine reference armposture trajectory parameters. To be more specific, parameters relatedto a total center-of-gravity position of both arms 5, 5 (a relativecenter-of-gravity position with respect to the body 3), a lateralinterval between right and left hands (the distal ends of both arms 5,5), and an antiphase arm swing angle are determined. For turning, forexample, to the left as shown in FIG. 17, the reference antiphase armswing angle may be set as shown in FIG. 18. As illustrated in FIG. 18, areference antiphase arm swing angle θazref is set such that, when anormal gait is repeated, an antiphase arm swing angle and an angularvelocity will be both continuous at a boundary of gaits (the boundarybetween the end of a second turning gait and the next first turninggait) and the relative relationship between the supporting leg and anantiphase arm swing angle at the start of the first turning gait agreeswith the relative relationship between the supporting leg and anantiphase arm swing angle at the start of the next first turning gait.In other words, the antiphase arm swing angular velocity at the start ofthe first turning gait and the antiphase arm swing angular velocity atthe end of the second turning gait agree with each other, and theantiphase arm swing angle at the end of the second turning gait is setto a value obtained by adding the antiphase arm swing angle at the startof the first turning gait to the turning angle of the normal gait (thesum of the turning angles of the first turning gait and the secondturning gait). In FIG. 18, the reference antiphase arm swing angleθazref has the sinusoidal waveform; however, it may alternatively be setto a constant angular velocity, or it may take an average value of asupporting leg yaw angle and a free leg yaw angle.

In the present embodiment, the total center-of-gravity positions of botharms 5, 5 of the desired arm posture (the relative position withrespective to the body 3) are set to be maintained constant with respectto the body 3.

Next, the processing proceeds to S106 and sets a floor reaction forcevertical component trajectory parameter. In this case, the floorreaction force vertical component trajectory parameter is set such thatthe floor reaction force vertical component trajectory defined by theparameter is virtually continuous (values do not jump in steps), asshown in FIG. 6, in both the first turning gait and the second turninggait. In other words, a desired floor reaction force vertical componenttrajectory of the normal turning gait is set to have the pattern shownin FIG. 19. According to the pattern, for both the first turning gaitand the second turning gait, the floor reaction force vertical componentexhibits a trapezoidal change in a single stance period, and the floorreaction force vertical component is maintained at zero in a floatingperiod. The time of break points of the pattern and the height of atrapezoid (peak value) are set as the floor reaction force verticalcomponent trajectory parameters.

When setting the floor reaction force vertical component trajectoryparameters, an average value throughout a gait period of the floorreaction force vertical component (the period equivalent to the sum ofthe periods of the first turning gait and the second turning gait, thatis, the period equivalent to one cycle of a normal gait) is made toagree with the self weight of the robot 1. This means that the averagevalue of the floor reaction force vertical component is set so that itprovides the same magnitude as that of the gravity acting on the robot 1but in an opposite direction.

Setting the floor reaction force vertical component trajectory asdescribed above is necessary to satisfy a normal gait condition. Thenormal gait conditions is such that a beginning state (a beginning stateof a first turning gait) of any state variables (a position, a posture,a velocity, etc. of each part of the robot 1) of a gait observed from asupporting leg coordinate system (a coordinate system set on a planewith which the supporting leg foot 22 is in contact) and a terminalstate (a terminal state of a second turning gait) of a gait observedfrom the next supporting leg coordinate system (the supporting legcoordinate system of the next first turning gait) agree with each other(hereinafter, this condition may be referred to as a boundary conditionof a normal gait). Therefore, the difference between a totalcenter-of-gravity vertical velocity of the robot 1 at the end of thenormal gait and a total center-of-gravity vertical velocity at the startof the normal gait (more specifically, the difference between the totalcenter-of-gravity vertical velocity at the end of a second turning gaitand the total center-of-gravity vertical velocity at the start of thefirst turning gait) must be also zero. The difference is an integratedvalue of the difference between the floor reaction force verticalcomponent and gravity (first-order integrated value); therefore, thefloor reaction force vertical component trajectory must be set asdescribed above in order to set the difference to zero.

In the present embodiment, the average value of the floor reaction forcevertical component in the period of each of the first turning gait andthe second turning gait has been made to agree with the self weight ofthe robot 1. More specifically, the time of the break points of thetrapezoidal portions of the floor reaction force vertical componenttrajectory in each turning gait has been set based on, for example, thegait cycle of the first turning gait and the second turning gait, andthen the heights of the trapezoidal portions have been determined suchthat the average value of the floor reaction force vertical component inthe period of each of the first turning gait and the second turning gaitagrees with the self weight of the robot 1 (the heights of thetrapezoids are determined by solving an equation representing thecondition under which the average value and the self weight coincide,taking the heights of the trapezoids as unknown numbers).

Thus, the difference between the total center-of-gravity verticalvelocity at the end of the first turning gait and the totalcenter-of-gravity vertical velocity at the start of the first turninggait will be zero, and the difference between the totalcenter-of-gravity vertical velocity at the end of the second turninggait and the total center-of-gravity vertical velocity at the start ofthe second turning gait will be also zero. This, however, is not a must.If, for instance, a vertical body position becomes excessively high orlow at about a boundary of the first turning gait and the second turninggait, leading to a likelihood of an unreasonable posture, then theheights or the like of trapezoids of the floor reaction force verticalcomponent trajectory of each turning gait may be corrected in the statein which the average value and the self weight agree in each turninggait.

Next, the processing proceeds to S108 to set a permissible range of afloor reaction force horizontal component [Fxmin, Fxmax] (morespecifically, a parameter defining it), as shown in FIG. 20, on thebasis of the floor reaction force vertical component trajectory set asshown in FIG. 19, as described above. The polygonal line on the negativeside in FIG. 20 indicates the permissible lower limit value Fxmin of thefloor reaction force horizontal component, while the polygonal line onthe positive side indicates the permissible upper limit value Fxmax ofthe floor reaction force horizontal component. A supplementaldescription will be given of a method for setting them. The followingwill explain a case where a floor surface is horizontal.

The floor reaction force horizontal component is generated from frictionbetween a floor and a foot 22. The friction cannot be generatedlimitlessly; it has a limit. Hence, the floor reaction force horizontalcomponent of a desired gait has to be always within a friction limit inorder to prevent the robot 1 from slipping when the actual robot 1 movesaccording to a generated desired gait. To meet this condition, apermissible range of the floor reaction force horizontal component willbe set, and a desired gait will be generated such that the floorreaction force horizontal component of the desired gait falls within thepermissible range, as it will be discussed hereinafter.

When the coefficient of friction between the floor and the foot 22 isdenoted by A, Fxmin must be always set to be not less than −μ*floorreaction force vertical component, and Fxmax must be set to be not morethan μ*floor reaction force vertical component. A simplest settingmethod is to set them according to the following expression, in which kais a positive constant that is smaller than 1.Fxmin=−ka*μ*Floor reaction force vertical componentFxmax=ka*μ*Floor reaction force vertical component  Equation 12

The permissible range of the floor reaction force horizontal componentshown in FIG. 20 is an example set according to Equation 12. The valuesand time at the break points of the trapezoidal waveforms or the like inFIG. 20 may be set as the parameters for defining the permissible rangeof the floor reaction force horizontal component. Alternatively,however, if the permissible range of the floor reaction force horizontalcomponent is determined according to Equation 12, then the value of(ka*μ) in Equation 12 may be simply set as a parameter.

As long as the above condition (the condition in that the floor reactionforce horizontal component of a desired gait always falls within africtional limit) is satisfied, a different setting method may be usedto set the permissible range of the floor reaction force horizontalcomponent.

The sequence then proceeds to S109 and sets the permissible range[Mzmin, Mzmax] (more specifically, a parameter defining it) of a floorreaction force moment vertical component, as shown in FIG. 21, on thebasis of the floor reaction force vertical component trajectory or thelike set as shown in FIG. 19, as described above. The polygonal line onthe negative side in FIG. 21 indicates the permissible lower limit valueMzmin of the floor reaction force moment vertical component, while thepolygonal line on the positive side indicates the permissible upperlimit value Mzmax of the floor reaction force moment vertical component.A supplemental description will be given of a method for setting them.The following will explain a case where a floor surface is horizontal.

The floor reaction force moment vertical component is generated fromfriction between a floor and a foot 22. The friction cannot be generatedlimitlessly; it has a limit. Hence, the floor reaction force momentvertical component of a desired gait has to be always within a frictionlimit in order to prevent the robot 1 from spinning when the actualrobot 1 moves according to a generated desired gait. To meet thiscondition, a permissible range of the floor reaction force momentvertical component will be set, and a desired gait will be generatedsuch that the floor reaction force moment vertical component of thedesired gait falls within the permissible range, as it will be discussedhereinafter.

If the coefficient of friction between the floor and the foot 22 isdenoted by μ, and an effective radius of the surface of contact betweenthe floor and the foot 22 to generate a moment vertical component (or asquare root of a sectional secondary moment about a desired ZMP of thesurface of contact between the floor and the foot 22) is denote by r,then Mzmin must be always set to be not less than −μ* r * floor reactionforce vertical component, and Mzmax must be set to be not more than μ*r * floor reaction force vertical component. A simplest setting methodis to set them according to the following expression, in which ka is apositive constant that is smaller than 1.Mzmin =−ka * μ * r * Floor reaction force vertical componentMzmax =ka *μ * r * Floor reaction force vertical component  Equation1012

The permissible range of the floor reaction force moment verticalcomponent shown in FIG. 21 is an example set according to Equation 1012.The values and time at the break points of the trapezoidal waveforms orthe like in FIG. 21 may be set as the parameters for defining thepermissible range of the floor reaction force moment vertical component.Alternatively, however, if the permissible range of the floor reactionforce moment vertical component is determined according to Equation1012, then the value of (ka*μ) in Equation 1012 may be simply set as aparameter. r is desirably calculated from a desired ZMP and a contactsurface at each instant; alternately, however, r may be a constant.

As long as the above condition (the condition in that the floor reactionforce moment vertical component of a desired gait always falls within africtional limit) is satisfied, a different setting method may be usedto set the permissible range of the floor reaction force moment verticalcomponent.

Further alternatively, a permissible range may be set by combining afloor reaction force horizontal component and a floor reaction forcevertical component moment rather than independently setting thepermissible range of a floor reaction force horizontal component and thepermissible range of a floor reaction force moment vertical component.This is because the permissible range of a floor reaction force momentvertical component becomes narrower as a floor reaction force horizontalcomponent increases, while the permissible range of the floor reactionforce horizontal component becomes narrower as the floor reaction forcemoment vertical component increases.

Next, the processing proceeds to S110 and sets ZMP trajectory parametersdefining the ZMP trajectory of the normal gait that combines the firstturning gait and the second turning gait. In this case, a desired ZMPtrajectory is set so as to exhibit a high stability margin and no suddenchanges, as described above.

To be more specific, according to the running gait shown in FIG. 5, afew moments after the heel of the supporting leg foot 22 lands,substantially the entire surface of the sole of the supporting leg foot22 comes in contact with the ground, and then, following a few moments,only the tiptoe of the supporting leg foot 22 comes in contact with theground. Thereafter, the robot 1 kicks the ground with the tiptoe of thesupporting leg foot 22 to jump into the air. Lastly, the robot 1 landsat the heel of the free leg foot 22. The desired ZMP has to exist withina ground contact plane. In the present embodiment, therefore, theposition of the desired ZMP in the X-axis direction for the firstturning gait and the second turning gait of the normal gait is set sothat it takes the heel of the supporting leg foot 22 as its initialposition and stays at this position until substantially the entire soleof the foot 22 comes in contact with the ground, as illustrated in theupper diagram of FIG. 7 described above. Subsequently, the desired ZMPis set so that it moves to the center of the supporting leg foot 22, andthen moves to the tiptoe by the time the tiptoe of the foot 22 comes incontact with the ground and remains thereafter at the tiptoe of thesupporting leg foot 22 until the foot 22 leaves the floor. After that,the desired ZMP is set such that the desired ZMP continuously moves fromthe tiptoe of the supporting leg foot 22 to the landing position of theheel of the free leg foot 22 by the time the next free leg foot 22lands, as previously described. Thus, the desired ZMP trajectory (thetrajectory in the X-axis direction) of the normal gait composed of thefirst turning gait and the second turning gait will be as illustrated inFIG. 22. The time and positions of the break points of the desired ZMPtrajectory are set as the ZMP trajectory parameters. In this case, thetime of the break points is set on the basis of gait cycles of the firstturning gait and the second turning gait determined based on therequired parameters. The positions of the break points are set on thebasis of the positions/postures on the next time's gait supporting legcoordinate system and the next but one time's gait supporting legcoordinate system or on the basis of the required values of the expectedfree leg foot landing positions/postures of the first step and thesecond step of the required parameters that define these coordinatesystems. The position of the ZMP trajectory in the Y-axis direction isset in the same manner as that illustrated in the lower diagram of FIG.7. More specifically, the trajectory of the positions of the desired ZMPin the Y-axis direction in the first turning gait is set according tothe same pattern as that shown in the lower diagram of FIG. 7. Thetrajectory of the positions of the desired ZMP in the Y-axis directionin the second turning gait is set to have the same shape as that for thefirst turning gait and connects to the end of the trajectory.

Subsequently, the processing proceeds to S112 and redefines the starttime, the end time, and duration of one step (one cycle) of the normalgait as follows.

A normal gait must be a gait in which state variables continuouslyconnect at the start and the end thereof. To easily determine such agait, in the present embodiment, the start, the end, and the duration ofone step of a normal gait are determined as illustrated in FIG. 19 forconvenience sake, which is different from the definition of a gait inthe narrow sense described above. Specifically, in the latter half of asingle stance period of the first turning gait, the time at which thefloor reaction force vertical component has reduced to a certain degreeis set as start time Ts of the normal gait. The start time Ts ispreferably set to the time of the moment at which the state whereinsubstantially the entire surface of the sole of the supporting leg foot22 is in contact with the ground is switched to tiptoe contact with theground or at the time immediately preceding it, as shown in FIG. 7 (thetime when the period of the entire sole surface in contact with theground ends or the time immediately preceding it, as shown in FIG. 7). Adescription will now be given of the relationship between the desiredZMP and time Ts shown in FIG. 22 (or FIG. 7) set in S110. Aftersubstantially the entire surface of the sole of the supporting leg foot22 comes in contact with the ground in the first turning gait, thedesired ZMP moves to the center of the supporting leg foot 22. Theinstant the movement to the tiptoe is completed by the tiptoe contactwith the ground is established is preferably time Ts. The start time Tsis set on the basis of, for example, the desired ZMP trajectoryparameters previously set. The reason for setting the start time Ts asdescribed above will be discussed hereinafter.

As shown in FIG. 19, a cycle Tcyc of the normal gait is a sum of thegait cycles of the first turning gait and the second turning gait. Theend time of the normal gait is denoted by Te. Te is set to the timeobtained by adding Tcyc to Ts.

The definition of the start, the end, or the like of a gait will bereturned to the definition of the gait in the aforesaid narrow senseagain from the moment the normal gait is determined (the moment thesequence leaves the loop of S204 shown in FIG. 23). In the followingexplanation, the start time (the time at which the supporting leg foot22 lands first) according to the definition of a gait based on theaforesaid narrow sense will be set to 0, and the above start time Tsused until the normal gait is determined will be distinguished from theoriginal start time 0 by using the reference mark Ts (abbreviated to“Ts” in some cases).

Lastly, the processing proceeds to S114 and sets a body posture angleand antiphase arm swing angle restoring period [Tm, Ts2] and [Tm2, Te]of the normal gait. Supplementally, when the normal gait is repeated,the body posture angle and the antiphase arm swing angle should becontinuous in a boundary of gaits. For this purpose, the beginning bodyposture angular velocity and the ending body posture angular velocity ofthe normal gait must agree with each other, and the beginning antiphasearm swing angular velocity and the ending antiphase arm swing angularvelocity must agree with each other. The aforesaid period is the periodfor adjusting a body posture angle trajectory and an antiphase arm swingangle trajectory to implement the agreement.

To be more specific, the gait goes through the floating period of thefirst turning gait from the start time Ts and reaches the second turninggait. The time at which the floor reaction force vertical component hasincreased to a predetermined magnitude is set as time Tm. Further, inthe latter half of a single stance period of the second turning gait,the time at which the floor reaction force vertical component hasreduced to a certain degree is set as time Ts2. Further, the gait goesthrough the floating period of the second turning gait and reaches thefirst turning gait. The time at which the floor reaction force verticalcomponent has increased to a predetermined magnitude is set as time Tm2.

FIG. 19 shows these times. The time Tm is preferably set to be themoment substantially the entire surface of the sole of the supportingleg foot 22 comes in contact with the ground or immediately after that.The same applies to time Tm2. Time Ts2 is preferably set to the time ofthe moment at which the state wherein substantially the entire surfaceof the sole of the supporting leg foot 22 is in contact with the groundis switched to tiptoe contact with the ground or at the time immediatelypreceding it, as in the case of the start time Ts.

A description will now be given of the relationship between the desiredZMP of FIG. 22 and these times Tm, Ts2 and Tm2 set in theafore-mentioned S110 of FIG. 15. In the second turning gait, the desiredZMP takes the heel of the supporting leg foot 22 as the beginningposition and remains at this position until substantially the entiresurface of the sole of the supporting leg foot 22 comes in contact withthe ground, and then the desired ZMP begins to move to the center of thesupporting leg foot 22. It is desired to set this moment the desired ZMPbeings to move to the center of the supporting leg foot 22 as time Tm.Thereafter, the instant the movement of the desired ZMP to the tiptoe iscompleted by the time only the tiptoe of the supporting leg foot 22comes in contact with the ground is preferably set as time Ts2.Furthermore, in the next first turning gait, the desired ZMP takes theheel of the supporting leg foot 22 as the beginning position and remainsat this position until substantially the entire surface of the sole ofthe supporting leg foot 22 comes in contact with the ground, and thenthe desired ZMP begins to move to the center of the supporting leg foot22. It is desired to set this moment the desired ZMP begins to move tothe center of the supporting leg foot 22 as time Tm2.

The reason for setting as described above will be discussed hereinafter.The period for restoring (adjusting) the body posture angle and theperiod for restoring (adjusting) the antiphase arm swing angle may beseparately set.

After the processing from S010 to S022 shown in FIG. 13 is carried out,the processing proceeds to S024 and calculates an initial state of thenormal gait. The initial state calculated here includes an initialhorizontal body position/velocity (an initial body position and initialbody velocity in the horizontal direction), an initial vertical bodyposition/velocity (an initial body position and an initial body velocityin the vertical direction), an initial divergent component, an initialbody posture angle and angular velocity, and an initial antiphase armswing angle and angular velocity of the normal gait. The initial stateis exploratorily calculated according to the flowchart of FIG. 23.

In the flowchart of FIG. 23, first, in S200, an initial state (a stateat the start time Ts) of a desired foot position/posture, a desired armposture, and a desired body posture angle (an inclination angle and ayaw angle) are determined on the basis of the gait parameters of thenormal gait (the parameters set in S022 of FIG. 13 described above). Thestate here represents positions and posture angles and their changingrates (time differentiation).

In this case, the initial state of a desired foot position/posture of asupporting leg is determined by generating, using a finite-durationsetting filter, a foot position/posture trajectory (a trajectoryobserved from a next time's gait supporting leg coordinate system) fromthe supporting leg foot position/posture at the start of the firstturning gait of the foot trajectory parameter determined in S100 of FIG.15 to the free leg foot position/posture at the end of the secondturning gait until time Ts is reached. The initial state of a desiredfoot position/posture of the free leg is determined by generating, usinga finite-duration setting filter, a foot position/posture trajectoryfrom the supporting leg foot position/posture at the start of thecurrent time gait observed from a next time's gait supporting legcoordinate system to the free leg foot position/posture at the end ofthe first turning gait until time Ts is reached. The initial state of adesired arm posture is determined to be a reference arm posture at timeTs that is determined on the basis of the reference arm posturetrajectory parameters determined in S104 of FIG. 15. To be morespecific, a total center-of-gravity position of both arms 5, 5 (arelative position with respect to the body 3) of a desired arm posture,a lateral interval between right and left hands (the distal ends of botharms 5, 5), and an antiphase arm swing angle and an angular velocity aredetermined. However, the antiphase arm swing angle and the angularvelocity are corrected so that they are continuous in a boundary ofgaits when a normal gait is repeated, as it will be discussedhereinafter; therefore, they have been just temporarily determined.

For an initial state of a desired body posture angle, a reference bodyposture (an inclination angle and a yaw angle) and an angular velocitythereof at time Ts determined by the reference body posture trajectoryparameter determined in S102 of FIG. 15 are determined as an initialstate of the desired body posture angle. In the present embodiment, thereference body posture related to the inclination angle of the body 3 isa vertical posture, so that the initial state (the inclination angle andthe angular velocity thereof) of the inclination angle in the desiredbody posture is zero.

Further, in the present embodiment, a desired foot position/posturetrajectory, a floor reaction force vertical component trajectory, and adesired ZMP trajectory of a normal gait are determined independentlyfrom each other on the basis of a foot trajectory parameter, a floorreaction force vertical component trajectory parameter, and a ZMPtrajectory parameter, respectively, which have been determined in theflowchart of FIG. 15. For example, a desired foot position/posture ateach instant of a normal gait is determined on the basis of a foottrajectory parameter without depending on an instantaneous value of afloor reaction force vertical component.

Subsequently, in S202, (Xs, Vxs) (Xs: horizontal position; Vxs:horizontal velocity), which is a candidate of an initial horizontal bodyposition/velocity (that is, a candidate of the horizontal bodyposition/velocity at the start time Ts), is provisionally determined.The candidate (Xs, Vxs) to be provisionally determined may be arbitrary.For example, the horizontal body position/velocity in the initial stateof the normal gait determined when the last time gait was generated maybe used as a provisionally determined candidate (Xs, Vxs).

To simplify the explanation, a case where the initial state of a normalgait in the X-direction (longitudinal direction) on a sagittal plane issearched for will be taken as an example. However, for the initial stateof a normal gait (the initial state that meets the aforesaid boundarycondition of a normal gait), it is actually required to search for theposition and the velocity in the X direction (longitudinal direction)and the Y direction (lateral direction) separately or simultaneously.

Supplementally, there is no concept related to a yaw rotation or amoment vertical component or the like about a vertical axis on thesagittal plane. For this reason, at least the yaw rotation and a momentvertical component are calculated in a three-dimensional space.

As an exploratory determining technique, a method in which apseudo-Jacobian (sensitivity matrix) is determined and then a nextcandidate is determined by the steepest descent method or the like, orthe simplex method or the like may be used. In the present embodiment,the steepest descent method will be used.

Next, the processing proceeds to S206 via S204 and determines theinitial (time Ts) vertical body position/velocity (Zs, Vzs) (Zs:vertical position; Vzs: vertical velocity) so that the vertical bodyposition/velocity is continuous and angles of joints, such as knees,will not be excessively large or small when the normal gait is repeated.More details regarding this have been described in, for example,PCT/JP02/13592 previously applied by the present applicant, and will betherefore omitted here.

After the processing of S206, the processing proceeds to S208 toprovisionally generate a normal turning gait (the normal turning gaitprovisionally generated may be hereinafter referred to as theprovisional gait). To be more specific, based on the gait parameters ofthe normal gait determined in S022 of FIG. 13 described above, a desiredZMP, a desired floor reaction force vertical component, a desired footposition/posture, a reference body posture, a desired arm posture, afloor reaction force horizontal component permissible range, and a floorreaction force moment vertical component permissible range at eachinstant from the start time Ts to the end time Te are sequentiallydetermined. Then, gaits from time Ts to the end time Te are generated bysequentially determining the body position/posture, taking thehorizontal body position/velocity (Xs, Vxs) and the vertical bodyposition/velocity (Zs, Vzs) mentioned above as the initial (time Ts)state of the body 3, and by using the aforesaid dynamic model (the modelin FIG. 12) so as to satisfy the dynamic balance condition related tothe determined desired ZMP and the desired floor reaction force verticalcomponent and the condition of the floor reaction force horizontalcomponent permissible range. At this time, the gaits are generated sothat the body posture agrees with the reference body posture as much aspossible.

Moreover, an antiphase arm swing motion is determined such that thecondition related to the floor reaction force moment vertical component,i.e., the floor reaction force moment vertical component permissiblerange, is satisfied.

Incidentally, the gait generation of the normal gait is performed merelyinside the gait generating device 100, and the generated gaits are notoutput to a composite-compliance operation determiner 104, which will bediscussed later, as desired values for driving the actual robot 1.

The following will explain in detail the processing for generating anormal gait by sequential calculation, which is the processing in S208.

FIG. 24 is a subroutine flowchart illustrating the processing.

The explanation will now be given. In S300, various elements areinitialized. Specifically, the start time Ts is substituted into time kfor generating a provisional gait. Furthermore, a currentlyprovisionally determined (Xs, Vxs) (determined in S202, or S216 or S218of FIG. 23 to be discussed hereinafter) is substituted into thehorizontal body position/velocity, and the latest (Zs, Vzs) determinedin the aforesaid S206 is substituted into the vertical bodyposition/velocity. In addition, an initial value of a reference bodyposture angle (angle at the start time Ts) is substituted into the bodyposture angle, and an initial value of a reference body posture angularvelocity (an angular velocity at the start time Ts) is substituted intothe body posture angular velocity.

A reference initial antiphase arm swing angle (angle at the start timeTs) is substituted into the antiphase arm swing angle, and a referenceinitial antiphase arm swing angular velocity (angular velocity at thestart time Ts) is substituted into the antiphase arm swing angularvelocity.

Subsequently, the processing proceeds to S304 via S302 and determineswhether time k for generating a provisional gait is before gait end time(whether k≦Ts+Tcyc). If the determination result is YES, then theprocessing proceeds to a gait instantaneous value determining subroutineof S306 to determine a gait instantaneous value. Subsequently, theprocessing of the gait generating device 100 proceeds to S308 toincrement time k for generating a provisional gait by Δk, and thenreturns to S304.

Here, Δk is an interval of the generation of provisional gaits andnormally set to agree with a control cycle Δt. If the dynamic accuracyof provisional gaits is not demanding, then Δk may be set to be longerthan Δt in order to reduce the volume of calculation.

If the determination result of S304 is NO, then the processing proceedsto S310. The processing described above generates a normal gait(provisional gait) from its start to end before proceeding to S310.

A gait instantaneous value determining subroutine of S306 will now beexplained in detail with reference to FIG. 25.

First, in S400 of FIG. 25, based on a normal gait parameter (the floorreaction force vertical component trajectory parameter), a value(current time value) of the desired floor reaction force verticalcomponent shown in FIG. 19 at time k is determined. Further, in S402, avalue (current time value) of the desired ZMP trajectory shown in FIG.22 at time k is determined on the basis of a normal gait parameter (theZMP trajectory parameter).

Then, the processing proceeds to S404 and determines the values (currenttime values) of desired positions/postures of both feet (desired footpositions/postures of both supporting leg and free leg), the referencebody posture, and the reference arm posture at time k on the basis ofthe normal gait parameters (the foot trajectory parameter, the referencebody posture trajectory parameter, and the arm posture trajectoryparameter). To be more specific about the reference arm posture, thevalues (current time values) of the total center-of-gravity position ofboth arms 5, 5 (the relative position with respect to the body 3), thelateral interval between right and left hands (the distal ends of botharms 5, 5), and the antiphase arm swing angle are determined.

The current time value (the value at time k) of the desired footposition/posture is determined in the same manner as in the case wherethe foot position/posture at the start time Ts was determined in S200 ofFIG. 23.

Then, the processing proceeds to S406 and calculates a value (currenttime value) of the total center-of-gravity vertical position/velocity attime k that satisfies the desired floor reaction force verticalcomponent (balances the sum of the inertial force in the verticaldirection and gravity of the robot 1 with the desired floor reactionforce vertical component). To be more specific, the totalcenter-of-gravity vertical position/velocity is calculated on the basisof, for example, the above Equation 01 and Equation 04 related to thedynamic model shown in FIG. 12. In other words, Equation 01 and Equation04 provide a relational expression (a dynamic equation related to thevertical direction of the total center of gravity of the robot 1)indicating that the result obtained by multiplying the sum of the totalcenter-of-gravity vertical acceleration and the gravity acceleration bya motion of the robot 1 by the total mass of the robot 1 is equal to afloor reaction force vertical component. Thus, the totalcenter-of-gravity vertical acceleration is determined from therelational expression and the desired floor reaction force verticalcomponent.

The relational expression itself generally holds without depending on amodel of the robot 1. The total center-of-gravity vertical velocity iscalculated by integrating the determined total center-of-gravityvertical acceleration, and further, the total center-of-gravity verticalvelocity is integrated to calculate the total center-of-gravity verticalposition. More generally, these calculations are carried out using thedynamic relational expressions represented by the following Equation 15and Equation 16 (discretized equations of Newton's dynamic equations).

$\begin{matrix}{{{Total}{\;\mspace{11mu}}{center}\text{-}{of}\text{-}{gravity}{\mspace{11mu}\;}{vertical}{\mspace{11mu}\;}{velocity}\mspace{11mu}{at}{\mspace{11mu}\;}{time}\mspace{14mu} k} = {{{Total}{\;\mspace{11mu}}{center}\text{-}{of}\text{-}{gravity}\mspace{14mu}{vertical}{\mspace{11mu}\;}{velocity}{\;\mspace{11mu}}{at}{\mspace{11mu}\;}{{time}\left( {k - {\Delta\; k}} \right)}} + {\left( {\left( {{Floor}{\mspace{11mu}\;}{reaction}{\mspace{11mu}\;}{force}{\;\mspace{11mu}}{vertical}{\mspace{11mu}\;}{{componet}/{Total}}{\mspace{11mu}\;}{mass}{\mspace{11mu}\;}{of}{\mspace{11mu}\;}{the}\mspace{14mu}{robot}} \right) + {{acceleration}{\mspace{11mu}\;}{of}{\mspace{11mu}\;}{gravity}}} \right)*\Delta\;{k\left( {{where}{\mspace{11mu}\;}{the}{\;\mspace{11mu}}{acceleration}{\mspace{11mu}\;}{of}{\mspace{11mu}\;}{gravity}\mspace{14mu}{takes}{\;\mspace{11mu}}a{\;\mspace{11mu}}{negative}\mspace{20mu}{value}} \right)}}}} & {{Equation}\mspace{14mu} 15} \\{{{Total}{\;\mspace{11mu}}{center}\text{-}{of}\text{-}{gravity}{\mspace{11mu}\;}{vertical}{\;\mspace{11mu}}{position}{\mspace{11mu}\;}{at}\mspace{14mu}{time}\mspace{14mu} k} = {{{Total}{\;\mspace{11mu}}{center}\text{-}{of}\text{-}{gravity}\mspace{14mu}{vertical}\mspace{14mu}{position}{\mspace{11mu}\;}{at}{\mspace{11mu}\;}{{time}\left( {k - {\Delta\; k}} \right)}} + {{Total}\mspace{14mu}{center}\text{-}{of}\text{-}{gravity}{\mspace{11mu}\;}{vertical}\mspace{14mu}{velocity}{\mspace{11mu}\;}{at}{\mspace{11mu}\;}{time}\mspace{14mu} k*\Delta\; k}}} & {{Equation}\mspace{14mu} 16}\end{matrix}$

Subsequently, the processing proceeds to S408 and calculates thevertical body position that satisfies the total center-of-gravityvertical position. To be more specific, the vertical body position iscalculated using, for example, Equation 04 related to the model in FIG.12. Specifically, the vertical positions of the supporting leg masspoint 2 m and the free leg mass point 2 m of the model in FIG. 12 aredetermined from the current time values of the desired footpositions/postures of the supporting leg and the free leg. Then, thesedetermined vertical positions of the supporting leg mass point 2 m andthe free leg mass point 2 m and the current time value of the totalcenter-of-gravity vertical position determined in S407 are applied toEquation 04 so as to determine the vertical position of the body masspoint 3 m. Furthermore, the vertical body position is determined fromthe determined vertical position of the body mass point 3 m and thecurrent value of the desired body posture angle (the reference bodyposture angle set in S404 or the last time (time k−Δk) desired bodyposture angle determined in S414 to be discussed hereinafter).

The sequence then proceeds to S410 wherein the values (current timevalues), at time k, of the floor reaction force horizontal componentpermissible range [Fxmin, Fxmax] shown in FIG. 20 are determined on thebasis of the gait parameter (the parameter defining the floor reactionforce horizontal component permissible range) determined in S108 of FIG.15 described above.

Subsequently, the processing proceeds to S411 wherein the value (currenttime value), at time k, of the floor reaction force moment verticalcomponent permissible range [Mzmin, Mzmax] shown in FIG. 21 isdetermined on the basis of the gait parameter (the parameter definingthe floor reaction force moment vertical component permissible range)determined in S109 of FIG. 15 described above.

Then, the processing proceeds to S412 wherein the current time values ofthe desired horizontal body acceleration and the desired body postureacceleration are determined such that the dynamic balance conditionrelated to the desired ZMP (the condition in that the horizontalcomponent of a moment generated about the desired ZMP by a resultantforce of an inertial force and the gravity of the robot 1 is zero) issatisfied. The horizontal body acceleration and the body posture angularacceleration (more specifically, the body inclination angularacceleration) are determined such that the floor reaction forcehorizontal component Fx does not exceed [Fxmin, Fxmax]. Further, thecurrent time value of the desired antiphase arm swing angularacceleration is determined such that the floor reaction force momentvertical component Mz does not exceed [Mzmin, Mzmax].

In the body posture angle, the yaw angle is determined so as to agreewith the yaw angle of the reference body posture angle. Regarding thedesired arm posture, components other than the antiphase arm swing angleare determined to agree with the reference arm posture. At this time,the desired body inclination angle and the desired antiphase arm swingangle are determined to follow the reference body inclination angle andthe reference antiphase arm swing angle, respectively, as much aspossible, while satisfying the aforesaid condition. This will beexplained in detail below.

At this point, the instantaneous values (current time values) of thefoot position/posture and the vertical body position have beendetermined as described above. Regarding the arm posture, the componentsother than the antiphase arm swing angle have been determined to agreewith those of the reference arm posture. Therefore, once the remaininghorizontal body position, body posture angle and antiphase arm swingangle are determined, the desired motion of the robot 1 will be uniquelydetermined. Hence, all floor reaction forces will be also uniquelydetermined. In the present embodiment, the desired floor reaction forcevertical component and the desired ZMP of a normal gait are defined bythe floor reaction force vertical component trajectory parameters andthe desired ZMP trajectory parameters, respectively, determined in S022of FIG. 13 described above.

When generating a gait, if the body inclination mode is primarily usedto satisfy a desired ZMP (to set the horizontal component of a floorreaction force moment about a desired ZMP to zero) without using theaforesaid body translational mode much, then the body posture angle maybecome excessively large. To prevent this, therefore, the bodytranslational mode should be used as much as possible. However, the bodytranslational mode involves floor reaction force horizontal componentchanges, so that slippage may occur if the body translational mode isintensely effected when the floor reaction force horizontal componentpermissible range is narrow. In this case, depending upon the bodyinclination mode is an inevitable choice. Especially during a period inwhich the floor reaction force horizontal component permissible range iszero, as in the aforesaid running gait, it is impossible to generate agait that produces a floor reaction force horizontal component. Hence,depending upon the body inclination mode is an inevitable choice.

Meanwhile, an antiphase arm swing motion allows only the floor reactionforce moment vertical component to be changed without changing any ofthe horizontal component of a floor reaction force moment about adesired ZMP and the floor reaction force horizontal component, so thatit can be used to prevent the floor reaction force moment verticalcomponent from exceeding the aforesaid floor reaction force momentvertical component permissible range. Considering the above, in thepresent embodiment, the horizontal body acceleration, the body postureangular acceleration, and the antiphase arm swing acceleration aredetermined according to the flowchart shown in FIG. 26. For theconvenience of understanding, regarding the determination of thehorizontal body acceleration and the body posture angular acceleration(the angular acceleration of an inclination angle of the body 3), a casewhere the horizontal body acceleration and the body posture angularacceleration in the X direction (longitudinal direction) are determinedon a sagittal plane will be taken as an example. Actually, however, thehorizontal body acceleration and the body posture angular accelerationin the Y direction (lateral direction) are also determined in the samemanner as that for the X direction.

First, in S500, the value of the reference body yaw angle at time k issubstituted into the desired body yaw angle. Further, the value of areference arm posture at time k is substituted into the desired armposture, excluding the antiphase arm swing angle and the angularvelocity component of an arm posture.

Then, in S502, it is determined whether the current time (the value of atimer for generating a normal gait) k is in the period of restoring abody posture angle and an antiphase arm swing angle (the period ofrestoring a body posture angle and an antiphase arm swing angle beingthe period from time Tm to time Ts2 and the period from time Tm2 to Tein the case of a normal gait). The processing proceeds to S504 if thedetermination result of S502 is NO, or to S530 if the determinationresult is YES.

In S504, a horizontal body acceleration αtmp is determined, which isrequired to satisfy the current (time k) desired ZMP if the robot 1 ismade to perform a motion of the body translational mode from a last timeinstantaneous gait state (the gait state at time k−1) of the robot 1,with the angular acceleration of the body inclination mode being set tozero. The αtmp is determined using, for example, the above Equation 03yrelated to the dynamic model of FIG. 12 described above. To be morespecific, for example, time series values of desired footpositions/postures determined up to the current time k are used todetermine the vertical accelerations of the supporting leg mass point 2m and the free leg mass point 2 m at the current time k, and a desiredfoot position/posture at the current time k (current time) is used todetermine the vertical positions of the supporting leg mass point 2 mand the free leg mass point 2 m. Furthermore, the floor reaction forcevertical position at the current time k (current time) is used todetermine the vertical position of the body mass point 3 m, and thevertical acceleration of the body mass point 3 m at the current time kis determined by using time series values of the desired vertical bodypositions determined up to the current time k. Then, these determinedvalues are substituted into the above Equation 03y, and an equationobtained by setting My and d2θby/dt2 of the Equation 03y to zero issolved on d2Xb/dt2 so as to determine the body mass point horizontalacceleration as the horizontal body acceleration αtmp. A more precisedynamic model may be used to exploratorily determine the horizontal bodyacceleration αtmp that sets the horizontal component of the floorreaction force moment about the desired ZMP to zero. Further, in thepresent embodiment, the reference body posture related to theinclination angle of the body 3 is the vertical posture and the bodyposture angular acceleration (the angular acceleration of theinclination angle of the body 3) in the reference body posture is zero,so that the angular acceleration in the body inclination mode was set tozero to determine the horizontal body acceleration αtmp. If, however,the reference body posture trajectory parameters are set so that theinclination angle of the reference body posture changes and if thereference body posture angular acceleration (the reference angularacceleration of the inclination angle of the body 3) at the current timek determined thereby is not zero, then the angular acceleration in thebody inclination mode may be set to the value of the reference bodyposture angular acceleration, which is not zero, to determine thehorizontal body acceleration αtmp by using a dynamic model (for example,d2θby/dt2 of Equation 03y may be set to a reference body posture angularacceleration that is not zero to determine the horizontal bodyacceleration αtmp in the same manner as described above).

Next, the processing proceeds to S506 wherein a floor reaction forcehorizontal component Fxtmp at time k when the horizontal bodyacceleration is αtmp is determined using a dynamic model. In the presentembodiment, Fxtmp is determined using Equation 02x of the dynamic model.In other words, Fxtmp is determined according to the following Equation17, where d2Xsup/dt2 and d2Xswg/dt2 denote the supporting leg foot masspoint horizontal acceleration and the free leg foot mass pointhorizontal acceleration at time k.Fxtmp=mb*αtmp+msup*d2Xsup/dt2+mswg*d2Xswg/dt2  Equation 17

An example of Fxtmp determined as described above is shown in FIG. 27.In FIG. 27, a portion wherein Fxtmp exceeds the floor reaction forcehorizontal component permissible range [Fxmin, Fxmax] is hatched.

Subsequently, the processing proceeds to S508 wherein a horizontal bodyacceleration α in the body translational mode and a floor reaction forcehorizontal component Fx generated thereby, and a body angularacceleration β in the body inclination mode are determined as shownbelow (S508 to S516).

Specifically,

If Fxtmp>Fxmax, then the processing proceeds to S510 wherein Fx isdetermined according to the following equation.Fx=Fxmax  Equation 18

If Fxtmp<Fxmin, then the processing proceeds to S512 wherein Fx isdetermined according to the following equation.Fx=Fxmin  Equation 19

In other cases, that is, if Fxtmp lies within the floor reaction forcehorizontal component permissible range [Fxmin, Fxmax], then theprocessing proceeds to S514 wherein Fx is determined according to thefollowing equation.Fx=Fxtmp  Equation 20

In any case, the processing proceeds to S516 wherein the horizontal bodyacceleration α and the body posture angular acceleration (bodyinclination angular acceleration) β are determined according to thefollowing equations.α=αtmp+(Fx−Fxtmp)/ΔFp  Equation 21β=(αtmp−α)*ΔMp/ΔMr  Equation 22

where ΔFp, ΔMp, and ΔMr are determined according to the above Equations06, 07, and Equation 09, respectively.

Supplementally, if higher accuracy of the dynamic calculation isrequired, then, after determining the body angular acceleration β asdescribed above, the horizontal body acceleration α in the bodytranslational mode should be analytically or exploratorily determined byusing a more precise dynamic model so that a motion obtained bycombining the body translational mode and the body inclination mode ofthe above determined body angular acceleration β satisfies the desiredZMP. As an exploratory determining method, a method in which apseudo-Jacobian (sensitivity matrix) is determined and then a nextcandidate is determined by the pseudo-Newton method or the like, or thesimplex method or the like may be used.

Further, in order to strictly prevent the floor reaction forcehorizontal component Fx from exceeding the floor reaction forcehorizontal component permissible range [Fxmin, Fxmax], a set of thehorizontal body acceleration α and the body angular acceleration β maybe exploratorily searched for such that Fx=Fxmax and the horizontalcomponent of the floor reaction force moment about the desired ZMP iszero in S510 and also Fx=Fxmin and the horizontal component of the floorreaction force moment about the desired ZMP is zero in S512.

FIG. 28 shows Fx determined as described above. Fx has been limited(saturated) so that a value of Fxtmp does not exceed the floor reactionforce horizontal component permissible range [Fxmin, Fxmax]. Morespecifically, Fxtmp is directly used as Fx if Fxtmp based on thehorizontal body acceleration αtmp by the body translational mode alonelies within the permissible range [Fxmin, Fxmax]. If Fxtmp based on thehorizontal body acceleration αtmp by the body translational mode aloneexceeds an upper limit of the permissible range [Fxmin, Fxmax] orreduces below a lower limit thereof, then Fx is forcibly limited toFxmax and Fxmin, respectively. Especially in a floating period of arunning gait, Fxmax=Fxmin=0 applies all the times, so that Fx=0.

FIG. 29 shows the body posture angular acceleration β determined asdescribed above. Thus, an insufficient portion of the floor reactionforce moment caused by limiting the acceleration in the bodytranslational mode so as to prevent Fx generated by the bodytranslational mode from exceeding the permissible range [Fxmin, Fxmax](more specifically, the moment obtained by subtracting a momentcomponent produced by a limited body horizontal motion and the motionsof both legs 2, 2 from an inertial force moment required for reducingthe horizontal component of a floor reaction force moment about thedesired ZMP to zero) has been compensated for by the body inclinationmode. During a floating period of a running gait, the horizontal bodyacceleration α by the body translational mode is always limited to zero,so that the insufficient portion of the floor reaction force moment iscompensated for only by the body posture angular acceleration β by thebody inclination mode.

Subsequently, the processing proceeds to S518 to determine a floorreaction force moment vertical component Mztmp when a motion in which,for example, a horizontal body acceleration in the body translationalmode is α, a body angular acceleration (body inclination angularacceleration) in the body inclination mode is β, a body acceleration inthe body yaw rotation mode (body yaw angular acceleration) is areference yaw angular acceleration d2θbzref/dt2, and an antiphase armswing angular acceleration βa is a reference antiphase arm swing angularacceleration d2θazref/dt2, is performed. Hereinafter, d2θbzref/dt2 willbe βbref, and d2θazref/dt2 will be βaref.

To be more specific, Mz obtained by substituting Equation 1001 throughEquation 1004 into Equation 03z is Mztmp.d2Xb/dt2=αx  Equation 1001d2Yb/dt2=αy  Equation 1002d2θbz/dt2=βbref  Equation 1003d2θaz/dt2=βaref  Equation 1004where αx denotes an X component of the horizontal body acceleration α,and αy denotes a Y component of the horizontal body acceleration α.Furthermore, a horizontal body position at time k−1 is substituted intoXb and Yb, and a value of time k is substituted into Xzmp, Yzmp, Xsup,d2Ysup/dt2, Xswg, and d2Yswg/dt2.

FIG. 32 shows an example Mztmp determined as described above. In FIG.32, the portion of Mztmp that exceeds the floor reaction force momentvertical component permissible range [Mzmin, Mzmax] is shown byhatching.

Next, the processing proceeds to S520 wherein an antiphase arm swingangular acceleration βa is determined as shown below (S520˜S528).

Specifically,

If Mztmp>Mzmax, then the processing proceeds to S522 wherein Mz isdetermined according to the following equation.Mz=Mzmax  Equation 1018

If Mztmp<Mzmin, then the processing proceeds to S524 wherein Mz isdetermined according to the following equation.Mz=Mzmin  Equation 1019

In other cases, that is, if Mztmp lies within the floor reaction forcehorizontal component permissible range [Mzmin, Mzmax], then theprocessing proceeds to S526 wherein Mz is determined according to thefollowing equation.Mz=Mztmp  Equation 1020

In any case, the processing proceeds to S528 wherein the antiphase armswing angular acceleration βa is determined according to the followingequation.βa=βaref+(Mztmp−Mz)/ΔMaz  Equation 1021

where ΔMaz is determined according to Equation 09a.

The following will explain the processing from S518 to S528.

Mz determined as described above denotes a floor reaction force momentvertical component from a motion of the entire robot, including anantiphase arm swing.

In the above processing, the antiphase arm swing angular acceleration βahas been determined such that the Mz does not exceed the floor reactionforce moment vertical component permissible range [Mzmin, Mzmax]. To bemore specific, Mz has been determined to be limited (saturated) so thata value of Mztmp does not exceed the floor reaction force horizontalcomponent permissible range [Mzmin, Mzmax], as shown in FIG. 33. Moredetailedly, Mztmp is directly used as Mz if Mztmp lies within thepermissible range [Mzmin, Mzmax]. If Mztmp exceeds an upper limit of thepermissible range [Mzmin, Mzmax] or reduces below a lower limit thereof,then Mz is forcibly limited to Mzmax and Mzmin, respectively. Especiallyin a floating period of a running gait, Mzmax=Mzmin=0 applies all thetimes, so that Mz=0.

A moment vertical component Maz to be generated by an antiphase armswing in order to prevent Mz from exceeding the floor reaction forcemoment vertical component permissible range [Mzmin, Mzmax] is obtainedby (Mz−Mztmp). Maz(=Mz−Mztmp) is shown in FIG. 34.

The antiphase arm swing angular acceleration βa can be obtained byadding the result obtained by dividing Maz by an equivalent inertialmoment ΔMaz of an antiphase arm swing to a reference antiphase arm swingangular acceleration βaref (a value obtained by subjecting a referenceantiphase arm swing angle to second order differentiation).Specifically, pa is determined according to the above Equation 1021. Theantiphase arm swing angular acceleration βa is shown in FIG. 35.

As described above, in the processing from S504 to S528, the antiphasearm swing angular acceleration βa is determined such that the floorreaction force moment vertical component Mz generated by a motion of theentire robot, including an antiphase arm swing, does not exceed thepermissible range [Mzmin, Mzmax] (such that the floor reaction forcemoment vertical component Mztmp offsets (cancels) the portion of thefloor reaction force moment vertical component Mztmp that exceeds thepermissible range, the floor reaction force moment vertical componentMztmp being generated when an antiphase arm swing angular accelerationis set to agree with the reference antiphase arm swing angularacceleration βaref).

Supplementally, to strictly prevent the floor reaction force momentvertical component Mz from exceeding the floor reaction force momentvertical component permissible range [Mzmin, Mzmax], the antiphase armswing angular acceleration βa should be analytically or exploratorilydetermined by using a more precise dynamic model in place of theprocessing from S504 to S528. As an exploratory determining method, amethod in which a pseudo-Jacobian (sensitivity matrix) is determined andthen a next candidate is determined by the pseudo-Newton method or thelike, or the simplex method or the like may be used.

The above processing is performed if time k is not found during theperiod of restoring a body posture angle and an antiphase arm swingangle.

If a determination result of S502 is YES, then the following processingwill be carried out. First, the processing proceeds to S530 to determinethe horizontal body acceleration α required to satisfy the desired ZMPof current time (time k) when the robot 1 is made to perform a motion ofthe body translational mode, with the angular acceleration in the bodyinclination mode being set to zero, from the last time instantaneousgait state (the gait state at time k−1) of the robot 1, and this isdetermined as a final horizontal body acceleration.

Next, the processing proceeds to S532 wherein the floor reaction forcehorizontal component Fx in the aforesaid case is determined.

Next, the processing proceeds to S534 wherein the body posture angularacceleration (the body inclination angular acceleration) β is determinedto be zero. The body yaw angular acceleration is determined to be thereference body yaw angular acceleration βbref (the value obtained bysubjecting the reference body yaw angle to second orderdifferentiation).

Lastly, the processing proceeds to S536 wherein the reference antiphasearm swing angular acceleration βaref (the value obtained by subjectingthe reference antiphase arm swing angle to second-order differentiation)is substituted into the antiphase arm swing angular acceleration βa.

The above is the processing carried out if the determination result ofS502 is YES. More specifically, in this case, the body posture angularacceleration (the body inclination angular acceleration and the body yawangular acceleration) is set to agree with the reference body postureangular acceleration, and the antiphase arm swing angular accelerationis set to agree with a reference antiphase arm swing angularacceleration. It is expected that this setting will not cause a floorreaction force generated by a motion to exceed the floor reaction forcehorizontal component permissible range and the floor reaction forcemoment vertical component permissible range; therefore, determining asdescribed above will present no problem.

After the processing of S528 or S536, the processing proceeds to S414 ofFIG. 25 wherein the horizontal body acceleration determined in S412 issequentially integrated (cumulative addition from time Ts to currenttime k) so as to determine a horizontal body velocity, and further, thehorizontal body velocity is sequentially integrated (cumulative additionfrom time Ts to current time k) so as to determine a horizontal bodyposition (current time value). Further, the body posture angularacceleration determined in S412 is sequentially integrated (cumulativeaddition from time Ts to the current time k) so as to determine a bodyposture angular velocity, and further, the body posture angular velocityis sequentially integrated (cumulative addition from time Ts to thecurrent time k) so as to determine a body posture angle (current timevalue).

The processing then proceeds to S416 wherein the antiphase arm swingacceleration βa determined in S412 is sequentially integrated(cumulative addition from time Ts to the current time k) so as todetermine an antiphase arm swing velocity, and further, the determinedantiphase arm swing velocity is sequentially integrated (cumulativeaddition from time Ts to the current time k) so as to determine anantiphase arm swing angle θaz (current time value).

After the normal gait instantaneous value determining subroutine of S306in FIG. 24 is carried out, the processing proceeds to S308 wherein thevalue of time k for generating a gait is incremented by a gaitgeneration interval Δk. Then, the processing returns to S304 to repeatthe processing of S306 and S308 as long as the condition shown in S304is satisfied. When the condition shown in S304 is no longer satisfied,that is, when the generation of provisional gaits up to the end (timeTe=Ts+Tcyc) is completed, the processing proceeds to S310.

For a normal gait, an initial body posture angle and its angularvelocity must be determined such that motional states of the robot 1 arenot discontinuous at boundaries when the normal gait is repeated.

Hence, in S310, a pattern of a ZMP-converted value (hereinafter referredto as the body posture restoring moment ZMP-converted value andabbreviated to ZMPrec) of a floor reaction force moment for generating abody posture angular acceleration for setting a body posture angularvelocity back to an initial value (the value at time Ts) by time Te isset.

This will be explained in detail below.

The following will discuss the procedure for setting a body postureangular velocity back to an initial value (the value at time Ts) bygenerating a body posture angular acceleration by using the bodyinclination mode during the body posture angle and antiphase arm swingangle restoring period (the period from time Tm to time Ts2 and fromtime Tm2 to Te). A body posture angular acceleration pattern for thispurpose is denoted by β(k). In periods other than the above-mentionedperiod, β(k)=0 will apply.

In the body inclination mode, generating the body posture angularacceleration β(k) will generate a floor reaction force moment β(k)*ΔMr.As a result, if the floor reaction force vertical component at thatinstant is denoted by Fz(k), then ZMP(k) calculated from a motion(rather than a desired ZMP) will be shifted by ΔZMP determined accordingto the following equation.ΔZMP(k)=−β(k)*ΔMr/Fz(k)  Equation 23

Therefore, if the pattern of ΔMr and the pattern of Fz(k) have beendetermined (known), then the body posture angular velocity can be setback to the initial value (the value at time Ts), that is, the bodyposture angular velocity in an initial (time Ts) state of the referencebody posture trajectory by appropriately setting a pattern of ΔZMP(k) togenerate a body posture angular acceleration pattern that satisfiesEquation 23.

The aforesaid body posture restoring moment ZMP-converted value (ZMPrec)means ΔZMP(k) that has been appropriately set as described above.Strictly speaking, ΔMr varies when setting the body posture restoringmoment ZMP-converted value by using the above Equation 23, but it may beapproximately set at a constant value. This is because the normal gaitis merely generated for temporary use and not used to make an actualrobot follow the gait, so that the dynamic accuracy of a normal gaitdoes not have to be very high.

FIG. 30 illustrates an example of ZMPrec. In FIG. 30, as a pattern ofZMPrec, trapezoidal patterns are formed for the period from time Tm totime Ts2 and for the period from time Tm2 to time Te. The times of breakpoints of the trapezoidal portions are set to agree with the times ofbreak points of a desired ZMP pattern in the period between time Tm andtime Ts2 and the period from Tm2 to Te (refer to FIG. 22). This isbecause correction of the desired ZMP pattern of a current time gaitwill be easier, as it will be discussed hereinafter.

Substituting ZMPrec(k) into ΔZMP(k) of Equation 23 provides thefollowing equation.β(k)=−ZMPrec(k)*Fz(k)/ΔMr  Equation 24

Therefore, β(k) determined in this Equation 24 will be as indicated bythe solid lines in FIG. 31. The dashed lines in FIG. 31 indicate thebody posture angular acceleration during the period from time Ts to timeTm and the period from time Tm2 to Te (indicated by the solid lines inFIG. 29). (Hereinafter, (k) may be omitted if a value is obviously thevalue at time k.)

The initial (time Ts) body posture angle is set to agree with theinitial (time Ts) reference body posture angle.

Further, the initial body posture angular velocity is determined tosatisfy Equations 37a and 37 b.

$\begin{matrix}{{{{Terminal}{\;\mspace{11mu}}{body}{\mspace{11mu}\;}{posture}{\mspace{11mu}\;}{angle}} - {{Initial}{\;\mspace{11mu}}{body}{\mspace{11mu}\;}{posture}{\mspace{11mu}\;}{angle}}} = {{{Second}\text{-}{order}{\mspace{11mu}\;}{integration}{\mspace{11mu}\;}{of}{\;\mspace{11mu}}a\mspace{14mu}{body}{\;\mspace{11mu}}{posture}\mspace{14mu}{angular}{\;\mspace{11mu}}{acceleration}{\mspace{11mu}\;}{that}{\;\mspace{11mu}}{has}{\;\mspace{11mu}}{been}\mspace{14mu}{determined}{\mspace{11mu}\;}{to}{\mspace{11mu}\;}{satisfy}\mspace{14mu} a{\mspace{11mu}\;}{floor}\mspace{14mu}{reaction}{\;\mspace{11mu}}{force}\mspace{14mu}{horizontal}\mspace{14mu}{component}\mspace{14mu}{permissible}{\;\mspace{11mu}}{range}} + {{Second}\text{-}{order}{\mspace{11mu}\;}{integration}{\mspace{11mu}\;}{of}{\mspace{11mu}\;}a{\mspace{11mu}\;}{body}\mspace{11mu}{posture}\mspace{14mu}{angular}{\;\mspace{11mu}}{acceleration}{\mspace{11mu}\;}{generated}\mspace{14mu}{by}\mspace{14mu}{ZMPrec}} + {{Initial}{\mspace{11mu}\;}{body}{\mspace{11mu}\;}{posture}{\mspace{11mu}\;}{angular}\mspace{14mu}{velocity}*{Cycle}{\;\mspace{11mu}}{of}{\mspace{11mu}\;}{normal}{\mspace{11mu}\;}{gait}}}} & {{Equation}\mspace{14mu} 37a} \\{{{{Terminal}{\;\mspace{11mu}}{body}{\;\mspace{11mu}}{posture}{\mspace{11mu}\;}{angular}{\mspace{11mu}\;}{velocity}} - {{Initial}{\mspace{11mu}\;}{body}{\mspace{11mu}\;}{posture}\mspace{14mu}{angular}{\mspace{11mu}\;}{velocity}}} = {{{First}\text{-}{order}{\;\mspace{11mu}}{integration}{\;\mspace{11mu}}{of}{\;\mspace{11mu}}a{\mspace{11mu}\;}{body}{\;\mspace{11mu}}{posture}\mspace{14mu}{angular}{\;\mspace{11mu}}{accleration}{\mspace{11mu}\;}{that}{\;\mspace{11mu}}{has}{\mspace{11mu}\;}{been}\mspace{14mu}{determined}{\;\mspace{11mu}}{to}{\;\mspace{11mu}}{satisfy}\mspace{14mu} a{\;\mspace{11mu}}{floor}{\;\mspace{11mu}}{reaction}{\;\mspace{11mu}}{force}{\;\mspace{11mu}}{horizontal}\mspace{14mu}{component}{\;\mspace{11mu}}{permissible}{\;\mspace{11mu}}{range}} + {{First}\text{-}{order}{\mspace{11mu}\;}{integration}{\mspace{11mu}\;}{of}{\mspace{11mu}\;}a{\mspace{11mu}\;}{body}{\mspace{11mu}\;}{posture}\mspace{14mu}{angular}{\;\mspace{11mu}}{acceleration}{\mspace{11mu}\;}{generated}{\;\mspace{11mu}}{by}\mspace{14mu}{ZMPrec}}}} & {{Equation}\mspace{14mu} 37b}\end{matrix}$

The integration period of the first term of the right side of each ofEquations 37a and 37b is the period combining the period from time Ts toTm and the period from Ts2 to Tm2, while the integration period of thesecond term of the right side is the period combining the period fromtime Tm to Ts2 and the period from Tm2 to Te.

To explain more specifically, in a normal gait, an initial state postureangle and an angular velocity observed from a supporting leg coordinatesystem of a first turning gait (a next time's gait supporting legcoordinate system) must agree with a terminal body posture angle andangular velocity, respectively, observed from a supporting legcoordinate system of the next first turning gait (the next but two timegait supporting leg coordinate system). Therefore, in the presentembodiment, the initial (time Ts) body posture angle is determined to bethe value of the initial (time Ts) reference body posture angle, andthis value and the value obtained by subjecting this value to coordinateconversion into a value observed from the next time's gait supportingleg coordinate system by a matrix (matrix of rotational coordinateconversion) based on a total turning angle (turning angle about avertical axis) of the robot 1 in a normal gait are substituted into theinitial body posture angle and the terminal body posture angle,respectively, in the left side of Equation 37a. The body posture angularacceleration determined in S518 of FIG. 26 described above is used asthe body posture angular acceleration related to the integration of thefirst term of the right side of Equations 37a and 37b.

Then, the initial body posture angular velocities of Equations 37a and37b and the heights of the trapezoids of ZMPrec (the trapezoidalpatterns shown in FIG. 30) related to the integration of the secondterms of the right sides of Equations 37a and 37b are taken as unknownnumbers (However, the times of the break points of the trapezoidalpatterns of ZMPrec are determined beforehand. Further, a trapezoidalheight acyc1 of ZMPrec of a first turning gait and a trapezoidal heightacyc2 of ZMPrec of a second turning gait are set to have the samevalue.) An initial body posture angular velocity determined by solvingthe simultaneous equation of Equations 37a and 37b including the unknownnumbers is decided as a new initial body posture angular velocity. Inthis case, the terminal body posture angular velocity in Equation 37b isobtained by coordinate-converting the initial body posture angularvelocity, which is an unknown number, into a value observed from a nexttime's gait supporting leg coordinate system by a matrix based on theabove total turning angle of a normal gait.

Subsequently, the processing proceeds to S312 wherein an amount ofinfluence exerted by a body inclination restoring moment ZMP-convertedvalue (ZMPrec) pattern on a horizontal body position and velocity isdetermined on the basis thereof, and the determined amount is added tothe terminal horizontal body position and velocity.

This processing will be explained. The details thereof have beenexplained in PCT/JP02/13592 by the present applicant, so that only abrief explanation will be given here.

During the period from time Ts to Tm and the period from time Ts2 to Te,if the body posture angular acceleration β is changed to generate thebody inclination restoring moment ZMP-converted value (ZMPrec) pattern,as described above, then the body posture angular acceleration β isdetermined according to the following equation.β=−ZMPrec*Fz/ΔMr  Equation 1025

The horizontal body acceleration that satisfies the desired ZMP when nobody inclination restoring moment is generated is αtmp as determined inS532. When the body posture angular acceleration α is changed asdescribed above, the horizontal body acceleration β required to satisfythe desired ZMP is determined-according to the following equation.α=αtmp−(ΔMr/ΔMp)*β  Equation 1026

From Equations 1025 and 1026,α=αtmp+ZMPrec*Fz/ΔMp  Equation 1027

In other words, the acceleration is increased by an equivalent to thesecond term of the right side of Equation 1027 by the body inclinationrestoring moment ZMP-converted value (ZMPrec).

Using the linearity of the equations, the terminal horizontal bodyvelocity obtained when the body posture angular acceleration β ischanged to generate the body inclination restoring moment ZMP-convertedvalue (ZMPrec) pattern as described above will be determined by addingthe first-order integration of (ZMPrec*Fz/ΔMp) from time Ts to Te to theterminal horizontal body velocity obtained when the body inclinationrestoring moment ZMP-converted value (ZMPrec) pattern is not generated,i.e., the terminal value of the horizontal body velocity determined inS414. Further, the terminal horizontal body position obtained when thebody posture angular acceleration β is changed to generate the bodyinclination restoring moment ZMP-converted value (ZMPrec) pattern asdescribed above will be determined by adding the second-orderintegration of (ZMPrec*Fz/ΔMp) from time Ts to Te to the terminalhorizontal body position obtained when the body inclination restoringmoment ZMP-converted value (ZMPrec) pattern is not generated, i.e., theterminal value of the horizontal body position determined in S414.

After completing the processing of S312, the processing proceeds to S314wherein an antiphase arm swing restoring angular acceleration (βarec)pattern is determined such that the antiphase arm swing angularvelocities at a start and an end agree.

To be more specific, the antiphase arm swing restoring angularacceleration patterns are set to be trapezoidal, as shown in FIG. 36,and a trapezoidal height azcyc2 in the period from time Tm to Ts2 and atrapezoidal height azcyc1 in the period from time Tm2 to Te are set tobe the same. The trapezoidal heights azcyc1 and azcyc2 are determinedsuch that the sum of the integrated value of βarec from time Ts to Teand the integrated value of the above determined antiphase arm swingacceleration βa for preventing the floor reaction force moment verticalcomponent Mz from exceeding a permissible range becomes zero. Thetrapezoidal heights in the two periods do not have to be the same.

Supplementally, a floor reaction force moment vertical component(Mazrec) generated by the antiphase arm swing restoring angularacceleration pattern determined as described above is as shown in FIG.37. Accordingly, as shown in FIG. 38, the floor reaction force momentvertical component Mz generated by a motion of the robot, including anantiphase arm swing, will be eventually the sum of Mztmp of FIG. 32, Mazof FIG. 34, and Mazrec of FIG. 37, i.e., the sum of Mz of FIG. 33 andMazrec of FIG. 37. In the period from time Tm to Ts2 and the period fromtime Tm2 to Te, trapezoidal restoring moments are added. These periodsare set so as to provide a sufficiently wide permissible range;therefore, the floor reaction force moment vertical components generatedby motions of the robot, including antiphase arm swings, will not exceedthe permissible range.

The processing then proceeds to S316 wherein an initial (time Ts)antiphase arm swing angle and angular velocity of a normal gait aredetermined.

To be more specific, the initial antiphase arm swing angular velocity isdetermined according to the following equation.

$\begin{matrix}{{{Initial}\mspace{14mu}{antiphase}{\mspace{11mu}\;}{arm}{\mspace{11mu}\;}{swing}{\mspace{11mu}\;}{angular}{\;\mspace{11mu}}{velocity}} = {{{Reference}{\;\mspace{11mu}}{initial}\mspace{14mu}{antiphase}\mspace{14mu}{arm}{\mspace{11mu}\;}{swing}{\mspace{11mu}\;}{angular}{\mspace{11mu}\;}{velocity}} - {\left( {{{Antiphase}\mspace{14mu}{arm}{\;\mspace{11mu}}{swing}{\;\mspace{11mu}}{angle}{\mspace{11mu}\;}{when}\mspace{14mu}\beta\;{arec}{\mspace{11mu}\;}{is}\mspace{14mu} 0} + {{Second}{\mspace{11mu}\;}{order}\mspace{14mu}{integration}{\mspace{11mu}\;}{of}\mspace{14mu}\beta\;{arec}\mspace{14mu}{pattern}}} \right)/{Tcyc}}}} & {{Equation}\mspace{14mu} 1030}\end{matrix}$

where in the above equation, the antiphase arm swing angle when βarec iszero is the antiphase arm swing angle (the antiphase arm swing angle attime Te) determined in S416. The second order integration of βarecrefers to a second order integrated value of the antiphase arm swingrestoring angular acceleration from time Ts to Te set as shown in FIG.36. The reference initial antiphase arm swing angular velocity refers tothe value of the aforesaid reference antiphase arm swing angularvelocity (the first order differential value of the reference antiphasearm swing angle θaref) at time Ts.

The initial antiphase arm swing angle is set to agree with the referenceinitial antiphase arm swing angle. Alternatively, based on a finallydetermined antiphase arm swing angular acceleration (that is, the abovedetermined sum of antiphase arm swing acceleration βa and the restoringangular acceleration βarec for preventing the floor reaction forcemoment vertical component Mz from exceeding a permissible range) and theabove determined initial antiphase arm swing angular velocity, theaverage value of the difference between an arm swing angle calculatedwhen an initial antiphase arm swing angle is set to agree with areference initial antiphase arm swing angle and a reference antiphasearm swing angle, or an average value of the maximum value and theminimum value of the difference may be determined, and then the valueobtained by subtracting a half of the determined average value from thereference initial antiphase arm swing angle may be determined as thefinal initial antiphase arm swing angle. This arrangement makes itpossible to prevent the absolute value of the difference between acalculated arm swing angle and the reference antiphase arm swing anglefrom becoming excessively large.

One of the reasons that times Ts, Tm, Ts2, and Tm2 have been set asdescribed above is to prevent the floor reaction force horizontalcomponent Fx from exceeding the permissible range [Fxmin, Fxmax] even ifthe body posture angular acceleration β is generated to set the bodyposture angular velocity back to the initial angular velocity of areference body posture trajectory during the period from time Tm to Ts2and the period from time Tm2 to Te. In other words, the floor reactionforce horizontal component permissible range is sufficiently wide in theperiod from time Tm to Ts2 and the period from time Tm2 to Te, so thatthe floor reaction force horizontal component Fx does not exceed thepermissible range even if the body posture angular acceleration β isgenerated to restore the body posture angular velocity, while satisfyingthe desired ZMP.

Another reason that the times Ts, Tm, Ts2, and Tm2 have been set asdescribed above is to prevent the floor reaction force moment verticalcomponent Mz from exceeding the permissible range [Mzmin, Mzmax] even ifthe antiphase arm swing angular acceleration Ha is generated to set theantiphase arm swing angular velocity back to the initial angularvelocity of a reference antiphase arm swing angle trajectory during theperiod from time Tm to Ts2 and the period from time Tm2 to Te. In otherwords, the floor reaction force moment vertical component permissiblerange is sufficiently wide in the period from time Tm to Ts2 and theperiod from time Tm2 to Te, so that the floor reaction force momentvertical component Mz does not exceed the permissible range even if theantiphase arm swing angular acceleration βa is generated to restore theantiphase arm swing angular velocity.

After the processing of S316 of FIG. 24 is completed as described above,the processing proceeds to S210 of FIG. 23 wherein the terminalhorizontal body position and velocity of a generated gait (provisionalnormal gait) are converted into values observed from a supporting legcoordinate system (the coordinate system of X″′, Y″′, and Z″′ shown inFIG. 17) associated with the supporting leg of that particular instant,and the values are defined as (Xe, Vxe) (Xe: Terminal body horizontalposition; and Vxe: Terminal horizontal body velocity).

Subsequently, the processing proceeds to S212 wherein the differencebetween the initial horizontal body position/velocity (Xs, Vxs) and theterminal horizontal position/velocity (Xe, Vxe) is calculated, asillustrated. This difference (Xs−Xe, Vxs−Vxe) is referred to as ahorizontal body position/velocity boundary condition error (errx,errvx). In a normal gait, the boundary condition must be satisfied, sothat (Xs, Vxs) and (Xe, Vxe) must agree. Hence, the horizontal bodyposition/velocity boundary condition error (errx, errvx) must be zero orsubstantially zero. In the present embodiment, (Xs, Vxs) that sets thehorizontal body position/velocity boundary condition error (errx, errvx)to substantially zero is exploratorily determined.

Subsequently, the processing proceeds to S214 wherein it is determinedwhether the calculated horizontal body position/velocity boundarycondition error (errx, errvx) falls within the permissible rangeappropriately set beforehand. Instead of setting the permissible rangeof a horizontal body position/velocity boundary condition error asdescribed above, it may be determined whether the difference between aninitial divergent component (Xs+Vxs/ω0) and a terminal divergentcomponent (Xe+Vxe/ω0) and the difference between an initial convergentcomponent (Xs−Vxs/ω0′) and a terminal convergent component (Xe−Vxe/ω0′)respectively fall within certain permissible ranges. As previouslymentioned, ω0 and ω0′ denote certain predetermined values.

If the determination result of S214 is NO, then the processing proceedsto S216. In this S216, a plurality of (two in the present embodiment)initial value candidates (Xs+ΔXs, Vxs) and (Xs, Vxs+ΔVxs) is determinedin the vicinity of (Xs, Vxs). Here, ΔXs and ΔVxs mean predeterminedminute variation amounts associated with Xs and Vxs, respectively. Then,taking each of these initial value candidates as an initial state of thehorizontal body position/velocity, a normal gait is generated using gaitparameters by the same processing as that of the above S208. Further,the terminal body position/velocity of the generated normal gait areconverted to obtain values (Xe+ΔXe1, Vxe+ΔVxe1) and (Xe+ΔXe2, Vxe+ΔVxe2)observed from a supporting leg coordinate system (the coordinate systemof X″′, Y″′, and Z″′ shown in FIG. 17) associated with the supportingleg at that particular instant. Here, (Xe+ΔXe1, Vxe+ΔVxe1) means theterminal body position/velocity that corresponds to (Xs+ΔXs, Vxs), and(Xe+ΔXe2, Vxe+ΔVxe2) corresponds to the terminal body position/velocitythat corresponds to (Xs, Vxs+ΔVxs). In the processing for generating anormal gait (provisional gait) in this case, the initial state (thestate at time Ts) of a variable other than the horizontal bodyposition/velocity may be set to the same value as that in a case where,for example, the initial value candidate of the horizontal bodyposition/velocity is set to (Xs, Vxs). In S216, the same processing asthat of the above S210 is carried out to determine the differencebetween each initial value candidate and the terminal bodyposition/velocity corresponding thereto, i.e., the horizontal bodyposition/velocity boundary condition error corresponding to each initialvalue candidate (Xs+ΔXs, Vxs), (Xs, Vxs+ΔVxs).

Next, the processing proceeds to S218 wherein, based on the horizontalbody position/velocity boundary condition error corresponding to each of(Xs, Vxs) and the initial value candidates in the vicinity thereof(Xs+ΔXs, Vxs), (Xs, Vxs+ΔVxs), an initial value candidate following (Xs,Vxs) is determined by a searching method (a method in which apseudo-Jacobian (sensitivity matrix) is determined and then a nextcandidate is determined by the steepest descent method or the like, orthe simplex method or the like). More specifically, a sensitivity matrixindicating a changing degree of a horizontal body position/velocityboundary condition error observed when a horizontal body position and ahorizontal body velocity are respectively changed minutely from theinitial value candidate (Xs, Vxs) on the basis of the horizontal bodyposition/velocity boundary condition errors associated with each of (Xs,Vxs) and the initial value candidates in the vicinity thereof (Xs+ΔXs,Vxs), (Xs, Vxs+ΔVxs) is determined, and then, based on the determinedsensitivity matrix, an initial value candidate (Xs, Vxs) that willfurther reduces the horizontal body position/velocity boundary conditionerror is newly determined. After the new initial value candidate (Xs,Vxs) of the horizontal body position/velocity is determined as describedabove, the processing returns to S206.

The aforesaid processing (the processing from S206 to S218) is repeatedas long as the determination result of S214 is NO. In this case, in S300(refer to FIG. 24) of the processing for generating a normal gaitcorresponding to a new initial value candidate (Xs, Vxs) of thehorizontal body position/velocity (S208), the initial value of the bodyposture angular velocity is set to the value determined in S310 (referto FIG. 24) in the processing of S208 that corresponds to the last timeinitial value candidate (Xs, Vxs) of the horizontal bodyposition/velocity rather than being set to the initial value of thereference body posture angular velocity. And if the determination resultof S214 is YES, then the processing leaves the repetition loop (S204)and proceeds to S220. The provisional normal gait generated immediatelybefore leaving the repetition loop of S204 will be obtained as thenormal gait that satisfies the boundary condition.

In S220, an initial horizontal body position/velocity (X0, V0) at anoriginal initial time 0 (the end time of the current time gait), aninitial vertical body position/velocity (Z0, Vz0) at the initial time 0,and initial body posture angle and angular velocity at the initial time0 are determined.

Specifically, (X0, V0) and (Z0, Vz0) are determined to be the valuesobtained by converting the horizontal body position/velocity and thevertical body position/velocity, which are determined at the time ofinstant when a second turning gait is switched to a first turning gait,i.e., at time k=Tcyc (time Te−Ts), into the values observed from thesupporting leg coordinate system (the X″′, Y″′, and Z″′ coordinatesystem of FIG. 17) associated with the supporting leg of the first stepstarting from time Tcyc (i.e., a second 1st turning gait) in a casewhere a gait is generated to satisfy a gait condition on the basis of abody inclination restoring moment ZMP-converted value pattern and theinitial body posture angle and angular velocity of a normal gait at timeTs that have been determined in S310 and the horizontal bodyposition/velocity (Xs, Vxs) at time Ts after leaving the loop of S204.Similarly, the initial state posture angle and angular velocity aredetermined to be the values obtained by converting the body postureangle and angular acceleration determined when time k=Tcyc (time Te−Ts)into values observed from the supporting leg coordinate system (the X″′,Y″′, and Z″′ coordinate system of FIG. 17) associated with thesupporting leg of one step starting from time Tcyc (i.e., a second firstturning gait).

Subsequently, the processing proceeds to S222 wherein a normal gaitinitial divergent component q[0] is determined according to thefollowing equation.q[0]=X0+V0/ω0  Equation 40

where ω0 takes a certain predetermined value, as explained above inrelation to the divergence.

Subsequently, the processing proceeds to S224 wherein the normal gaitinitial divergent component q[0] is converted into a value observed froma current time's gait supporting leg coordinate system, and this isdetermined as q″[0]. Further, the initial vertical bodyposition/velocity (Z0, Vz0) is converted into a value observed from thecurrent time's gait supporting leg coordinate system, and this isdetermined as (Z0″, Vz0″).

Supplementally, (Z0″, Vz0″) agrees with the terminal vertical bodyposition/velocity of a second turning gait observed from the supportingleg coordinate system of the second turning gait (the X″, Y″, and Z″coordinate system of FIG. 17). In addition, q″[0] also agrees with theterminal divergent component of the second turning gait observed fromthe supporting leg coordinate system of the second turning gait (the X″,Y″, and Z″ coordinate system of FIG. 17). Alternatively, therefore,(Z0″, Vz0″) and q″[0] may be calculated by utilizing these properties.

The processing further proceeds to S226 wherein initial antiphase armswing angle and angular velocity (θaz0, ωaz0) at the original initialtime 0 (the end time of the current time gait) are determined, andfurther, (θaz0″, ωaz0″), which is the value observed from the currenttime's gait supporting leg coordinate system, is determined. To be morespecific, (θaz0, ωaz0) is determined to be the value obtained byconverting the antiphase arm swing angle and angular velocity, which aredetermined at the time of instant when a second turning gait is switchedto a first turning gait, i.e., at time k=Tcyc (time Te−Ts), in a casewhere a gait is generated in such a manner to satisfy a gait conditionon the basis of an antiphase arm swing restoring angular accelerationpattern, and initial (time Ts) antiphase arm swing angle and angularvelocity of a normal gait that have been determined in S314 and S316(more specifically, in a case where an antiphase arm swing angletrajectory is determined such that a floor reaction force momentvertical component does not exceed a permissible range in a period otherthan the body posture angle and antiphase arm swing angle restoringperiod, and the antiphase arm swing angle trajectory is determined suchthat the sum of the reference antiphase arm swing angular accelerationβaref and the antiphase arm swing restoring angular acceleration βarecis generated in the body posture angle and antiphase arm swing anglerestoring period), into a value observed from the supporting legcoordinate system (the X″′, Y″′, and Z″′ coordinate system of FIG. 17)associated with the supporting leg of one step starting from time Tcyc(i.e., a second 1st turning gait).

Thus, the processing of S024 of FIG. 13, that is, the subroutineprocessing for determining an initial state of a normal gait, isfinished.

Subsequently, the processing proceeds to S026 of FIG. 13 wherein thegait parameters of the current time gait are determined (some areprovisionally determined). To be more specific, in S026, the followingprocessing is carried out according to the flowchart shown in FIG. 39.

First, in S600, the foot trajectory parameters of the current time gaitare set such that the foot position/posture trajectory of the currenttime gait continues to the foot position/posture trajectory of a normalgait.

Specifically, the initial free leg foot position/posture of the currenttime gait (the initial value of the free leg foot position/posture ofthe current time gait) is set to current free leg position/postureobserved from the current time's gait supporting leg coordinate system(the terminal free leg position/posture of the last time gait). Theinitial supporting leg foot position/posture of the current time gait(the initial value of the current time gait supporting leg footposition/posture) are set to current supporting leg footposition/posture observed from the current time's gait supporting legcoordinate system (the terminal supporting leg foot position/posture ofthe last time's gait). The terminal free leg foot position/posture ofthe current time gait is determined on the basis of a next time's gaitsupporting leg coordinate system observed from the current time's gaitsupporting leg coordinate system (a required value of the free leglanding position/posture of the first step related to the current timegait). More specifically, the terminal free leg foot position/posture ofthe current time gait are determined such that a representative point ofa free leg foot 22 agrees with the origin of the next time's gaitsupporting leg coordinate system observed from the current time's gaitsupporting leg coordinate system when the free leg foot 22 is turned,from the terminal free leg foot position/posture of the current timegait, until substantially the entire surface of the sole of the foot 22comes in contact with the ground without slippage, while maintaining thefree leg foot 22 in contact with a floor.

At the end of the current time gait, the supporting leg foot 22 is offthe floor and floating. To determine the trajectory after the supportingleg foot 22 leaves the floor, an expected supporting leg foot landingposition/posture is set. The expected supporting leg foot landingposition/posture is set on the basis of the next but one time's gaitsupporting leg coordinate system observed from the current time's gaitsupporting leg coordinate system (a required value of the free leg footposition/posture of the second step related to the current time gait).To be more specific, the expected supporting leg foot landingposition/posture are determined such that a representative point of thefoot 22 obtained when the foot 22 is turned from that position/posturewithout slippage until substantially entire surface of the sole of thefoot 22 is brought into contact with the floor while holding the foot 22in contact with the floor agrees with the origin of the next but onetime's gait supporting leg coordinate system observed from the currenttime's gait supporting leg coordinate system.

The terminal supporting leg foot position/posture of the current timegait is determined by generating a foot position/posture trajectory froma current supporting leg position/posture (the initial supporting legfoot position/posture of the current time gait) to the expected footlanding position/posture corresponding to the next time's gaitsupporting leg coordinate system (the required value of the free legfoot landing position/posture of the second step in the aforesaidrequired parameter) by using the finite-duration setting filter untilthe end of the current time gait.

Subsequently, the processing proceeds to S602 wherein the reference bodyposture trajectory parameter of the current time gait is determined inthe same manner as that for the first turning gait and the secondturning gait of a normal gait. The aforesaid parameter, however, is setsuch that the reference body posture trajectory of the current time gaitcontinuously connects to the reference body posture trajectory of theabove normal gait (such that the reference body posture angle and theangular velocity at the end of the current time gait agree with thereference body posture angle and the angular velocity, respectively, atthe start of a normal gait). In the present embodiment, the referencebody posture related to an inclination angle refers to a steady verticalposture in both a current time gait and a normal gait.

Next, the processing proceeds to S604 wherein the reference arm posturetrajectory parameters of the current time gait are determined in thesame manner as that for the first turning gait and the second turninggait of the normal gait. The above parameters, however, are set suchthat the initial reference arm posture of the current time gait and thechanging rate thereof agree with the current instantaneous values of areference arm posture and the changing rate thereof, and the arm posturetrajectory of the current time gait continuously connects with the armposture trajectory of the normal gait. For the arm posture trajectoryparameters determined here, the parameters related to, for example, atotal center-of-gravity position of both arms 5, 5 (a relative positionwith respect to the body 3), a lateral interval between right and lefthands (the distal ends of both arms 5, 5), and an antiphase arm swingangle are determined, as in the case where the normal gait parametersare determined (S104 in FIG. 15). In the present embodiment, the totalcenter-of-gravity positions of both arms 5, 5 are set so as to bemaintained constant with respect to the body 3.

The processing then proceeds to S606 wherein the floor reaction forcevertical component trajectory parameters of the current time gait aredetermined such that the floor reaction force vertical componenttrajectory defined by the parameters will be a substantially continuous(values not jumping in steps) trajectory as illustrated in FIG. 6mentioned above, as in the case of the first turning gait and the secondturning gait of a normal gait.

The floor reaction force vertical component trajectory parameters,however, are determined such that both the total center-of-gravityvertical position/velocity and the floor reaction force verticalcomponent trajectory of the current time gait continuously connect withthe normal gait.

Specifically, first, the value (Z0″, Vz0″) obtained by converting theinitial vertical body position/velocity of the normal gait that has beenfinally determined by the processing of S024 of FIG. 13 mentioned above(the processing for determining the initial state of the normal gait)into the value observed from a current time's gait supporting legcoordinate system, i.e., the initial total center-of-gravity verticalposition/velocity of the normal gait observed from the current time'sgait supporting leg coordinate system are determined using, for example,the above Equation 04 (or a kinematics model of the robot 1) on thebasis of (Z0″, Vz0″) or the like determined in S224 of FIG. 23. To bemore specific, the initial total center-of-gravity vertical position ofthe normal gait observed from the current time's gait supporting legcoordinate system is determined by substituting the body mass pointvertical position of the model shown in FIG. 12, which corresponds tothe vertical body position Z0″ of the normal gait determined in S224,and the leg mass point vertical positions of a supporting leg and a freeleg, which correspond to the values obtained by converting individualfoot positions at the start of the normal gait into the values observedfrom the current time's gait supporting leg coordinate system, intoEquation 04. Further, the initial total center-of-gravity verticalvelocity of the normal gait observed from the current time's gaitsupporting leg coordinate system is determined by substituting the bodymass point vertical velocity of the model shown in FIG. 12, whichcorresponds to the body vertical velocity Vz0″ of the normal gaitdetermined in S224, and the leg mass point vertical velocities of asupporting leg and a free leg, which correspond to the values obtainedby converting individual foot vertical velocities at the start of thenormal gait into the values observed from the current time's gaitsupporting leg coordinate system, into an equation derived fromdifferentiating both sides of Equation 04. Alternatively, the initialtotal center-of-gravity vertical position/velocity may be calculated byusing a more precise model.

Then, the initial total center-of-gravity vertical position/velocity ofthe normal gait determined as described above are substituted into theterminal total center-of-gravity vertical positions/velocities of thefollowing equations 41a and 41b, and the total center-of-gravityvertical position and velocity of the last time desired gaitinstantaneous value (to be more precise, the value obtained byconverting the terminal state of the last time desired gait into thecurrent time's gait supporting leg coordinate system) are substitutedinto the initial total center-of-gravity vertical positions andvelocities of Equations 41a and 41b. Then, a floor reaction forcevertical component pattern (to be more specific, a parameter value) ofthe current time gait is determined such that the relationship betweenEquations 41a and 41b is satisfied. The integrated values in Equations41a and 41b are to be the integrated values in the period from the startto the end of the current time gait.

$\begin{matrix}{{{{Terminal}{\mspace{11mu}\;}{total}{\;\mspace{11mu}}{center}\text{-}{of}\text{-}{gravity}{\;\mspace{11mu}}{vertical}{\;\mspace{11mu}}{position}} - {{Initial}{\;\mspace{11mu}}{total}{\mspace{11mu}\;}{center}\text{-}{of}\text{-}{gravity}{\;\mspace{11mu}}{vertical}{\;\mspace{11mu}}{position}}} = {{{Second}\text{-}{order}{\;\mspace{11mu}}{integration}{\;\mspace{11mu}}{{of}\left( {{Floor}{\mspace{11mu}\;}{reaction}\mspace{14mu}{force}\mspace{14mu}{vertical}{\;\mspace{11mu}}{{component}/{Total}}{\;\mspace{11mu}}{mass}{\mspace{11mu}\;}{of}{\mspace{11mu}\;}{the}{\;\mspace{11mu}}{robot}} \right)}} + {{Second}\text{-}{order}{\mspace{11mu}\;}{integration}{\mspace{11mu}\;}{of}{\;\mspace{11mu}}{acceleration}{\mspace{11mu}\;}{of}{\;\mspace{11mu}}{gravity}} + {{Initial}{\mspace{11mu}\;}{total}{\;\mspace{11mu}}{center}\text{-}{of}\text{-}{gravity}{\;\mspace{11mu}}{vertical}{\;\mspace{11mu}}{velocity}*{Duration}{\;\mspace{11mu}}{of}{\;\mspace{11mu}}{one}{\;\mspace{11mu}}{step}}}} & {{Equation}\mspace{20mu} 41a} \\{{{{Terminal}{\;\mspace{11mu}}{total}{\;\mspace{11mu}}{center}\text{-}{of}\text{-}{gravity}{\mspace{11mu}\;}{vertical}\mspace{14mu}{velocity}} - {{Initial}{\mspace{11mu}\;}{total}{\;\mspace{11mu}}{center}\text{-}{of}\text{-}g\;{ravity}{\;\mspace{11mu}}{vertical}{\;\mspace{11mu}}{velocity}}} = {{{First}\text{-}{order}{\;\mspace{11mu}}{integration}\mspace{20mu}{{of}\left( {{Floor}{\;\mspace{14mu}}{reaction}{\;\mspace{11mu}}{force}{\;\mspace{11mu}}{vertical}{\mspace{14mu}\;}{{component}/{Total}}{\mspace{11mu}\;}{mass}{\;\mspace{11mu}}{of}{\;\mspace{14mu}}{the}{\;\mspace{11mu}}{robot}} \right)}} + {{First}\text{-}{order}\mspace{20mu}{integration}{\mspace{11mu}\mspace{11mu}}{of}{\mspace{11mu}\mspace{11mu}}{gravity}{\mspace{11mu}\mspace{11mu}}{acceleration}}}} & {{Equation}\mspace{20mu} 41b}\end{matrix}$

where the gravity acceleration takes a negative value.

To be more specific, first, at least two parameters out of the floorreaction force vertical component parameters (e.g., times of breakpoints) that define the floor reaction force vertical component patternas shown in FIG. 6 are taken as independent unknown variables. Thevalues of the unknown variables are determined by solving a simultaneousequation composed of Equations 41a and 41b.

The floor reaction force vertical component parameters to be selected asthe unknown variables may be, for example, the height (the peak value ofthe floor reaction force vertical component) and the width (duration ofsingle stance period) of the trapezoid shown in FIG. 6. In this case,the slopes of both sides of the trapezoid shown in FIG. 6 take valuesdetermined beforehand on the basis of a current time gait cycle or thelike, or the values of times of the break points of the floor reactionforce vertical component pattern, excluding the time at which a singlestance period is switched to a floating period, that has been determinedbeforehand on the basis of a current time gait cycle or the like.Supplementally, if only one unknown variable is given, then no solutiongenerally exists that satisfies the simultaneous equation of Equations41a and 41b.

Subsequently, the processing proceeds to S608 wherein a floor reactionforce horizontal component permissible range [Fxmin, Fxmax] (to be morespecific, the parameters defining the pattern of the floor reactionforce horizontal component permissible range) is set in the same manneras that for the first turning gait and the second turning gait of anormal gait. For instance, the floor reaction force horizontal componentpermissible range is set according to the pattern shown in FIG. 40. Inthe present embodiment, the floor reaction force horizontal componentpermissible range is set according to the aforesaid Equation 12 on thebasis of the floor reaction force vertical component pattern determinedpreviously in S606.

Then, the processing proceeds to S610 wherein a floor reaction forcemoment vertical component permissible range [Mzmin, Mzmax] (to be morespecific, the parameters defining the pattern of the floor reactionforce moment vertical component permissible range) is set in the samemanner as that for the first turning gait and the second turning gait ofa normal gait. For instance, the floor reaction force moment verticalcomponent permissible range is set according to the pattern shown inFIG. 41. In the present embodiment, the floor reaction force momentvertical component permissible range is set according to the aforesaidEquation 1012 on the basis of the floor reaction force verticalcomponent pattern determined previously in S606.

Subsequently, the processing proceeds to S612 wherein the ZMP trajectoryof the current time gait (specifically, the parameters defining the ZMPtrajectory, such as times and positions of break points of thetrajectory) is set, as shown in FIG. 7, such that it exhibits a highstability margin and no sudden changes, as in the first turning gait andthe second turning gait of a normal gait. The parameters are set suchthat the ZMP trajectory of the current time gait continuously connectswith the ZMP trajectory of the aforesaid normal gait. In other words,the ZMP trajectory parameters are determined so that the ZMP position atthe end of the current time gait agrees with the ZMP position at thestart of the normal gait. In this case, in a running gait, the times andpositions of break points of the ZMP trajectory in a single stanceperiod may be set in the same manner as that for setting the ZMPtrajectory parameters of the normal gait described above. And the ZMPtrajectory parameters may be set so that a desired ZMP trajectory in afloating period linearly changes in succession from the start of thefloating period to the ZMP position at the start of a normal gait.

It should be noted that the ZMP trajectory parameters of the currenttime gait determined in S612 are merely temporary, and will becorrected, as it will be discussed hereinafter. For this reason, the ZMPtrajectory of the current time gait set as described above will behereinafter referred to as a provisional desired ZMP trajectory of acurrent time gait.

Lastly, the processing proceeds to S614 wherein a body posture angle andantiphase arm swing angle restoring period [Ta, Tb] is set. The bodyposture angle and antiphase arm swing angle restoring start time Tacorresponds to Tm in the second turning gait of a normal gait, whilebody posture angle and antiphase arm swing angle restoring end time Tbcorresponds to Ts2 in the second turning gait of the normal gait. Thesetimes Ta and Tb are set in the same manner as that for setting Tm andTs2.

Returning to the explanation of FIG. 13, after carrying out theprocessing shown in S026 (the processing for determining the gaitparameters of the current time gait) as described above, the processingproceeds to S028 wherein the gait parameters (ZMP trajectory parameters)of the current time gait are corrected, and the parameter of theantiphase arm swing angle is determined. In this processing, the ZMPtrajectory parameters are corrected so as to make the bodyposition/posture trajectory continue or approximate to a normal gait,and a parameter related to the antiphase arm swing angle of the currenttime gait is determined to make the antiphase arm swing angle convergeto the antiphase arm swing angle trajectory of the normal gait.

FIG. 42 shows the subroutine flowchart-illustrating the processing.

First, the processing proceeds to S702 via S700 and temporarilygenerates a provisional current time gait until the time at which thecurrent time gait ends on the basis of a provisional desired ZMP patternand other current time gait parameters.

In S702, the following processing will be carried out according to theflowchart shown in FIG. 43.

The explanation will now be given. In S800, various elements areinitialized. Specifically, zero is substituted into time k forgenerating a provisional gait. Furthermore, the initial state of thecurrent time gait is obtained by converting the terminal state of thelast time desired gait (to be more specific, the terminal values of thegait states, including a horizontal body position/velocity, a verticalbody position/velocity, a body posture angle and its angular velocity, adesired foot position/posture, and a desired arm posture) into a currenttime's gait supporting leg coordinate system.

Supplementally, the desired arm posture includes desired antiphase armswing angle and angular velocity.

Subsequently, the processing goes through S802 and proceeds to S804wherein it is determined whether time k for generating a provisionalgait is before current time gait end time Tcurr (whether k≦Tcurr). Ifthe determination result is YES, then the processing proceeds to acurrent time gait instantaneous value determining subroutine of S806 todetermine an instantaneous value of time k of the current time gait. Inthe gait instantaneous value determining subroutine of S806, aprovisional gait is generated as shown in FIG. 25 in the same manner asthat of S306 previously described. However, current time gait parametersare used in place of normal gait parameters, as the gait parameters.

Subsequently, the processing proceeds to S808 to increment time k forgenerating a provisional gait by Δk, and then returns to S804.

If the determination result of S804 is NO, then the processing of theflowchart shown in FIG. 43 is completed.

The processing discussed above generates the provisional current timegait from the start and the end thereof.

Subsequently, the processing proceeds to S704 wherein a terminaldivergent component q0[k](k=Tcurr) is determined according to theequation shown in the figure (Equation 10 given above) from thehorizontal body position/velocity (Xe, Vxe) at the end of the currenttime gait determined in S702 as described above.

The proceeding then proceeds to S706 wherein a terminal divergentcomponent error errq, which is the difference between a current timegait terminal divergent component q0[k] and a normal gait initialdivergent component q″ (the one determined in S224 of FIG. 23), isdetermined using the equation shown. Further, the processing proceeds toS708 wherein it is determined whether the determined terminal divergentcomponent error errq falls within a permissible range (a range in thevicinity of zero).

If the determination result of S708 is NO, then the processing proceedsto S710 wherein a=Δa (Δa being a predetermined extremely small amount)is set, and a provisional current time gait to the end thereof iscalculated, as in the aforesaid S702, on the basis of the desired ZMPobtained by adding a trapezoidal correction to the current provisionaldesired ZMP pattern according to the relationship shown in FIG. 44.Here, referring to FIG. 44, “a” denotes the height of the trapezoidalpattern for correcting a provisional desired ZMP so as to make thecurrent time gait terminal divergent component agree with the normalgait initial divergent component as much as possible (so as toapproximate the horizontal body position/posture trajectory of thecurrent time gait to the horizontal body position/posture trajectory ofthe normal gait). In this case, in the present embodiment, theprovisional desired ZMP is corrected during the period in whichsubstantially the entire surface of the sole of the supporting leg foot22 comes in contact with the ground (theentire-sole-in-contact-with-the-ground period) that is, during theperiod in which the floor reaction force horizontal componentpermissible range is sufficiently wide, and the times of the breakpoints of the above trapezoidal pattern are set to balance with thetimes of the break points of the provisional desired ZMP in theentire-sole-in-contact-with-the-ground period. The setting a=Δa is givenin S710 to observe a change in the terminal divergent component errorerrq when the current provisional desired ZMP trajectory is corrected byan extremely small amount according to the aforesaid trapezoidalpattern.

After generating the provisional current time gait to the end with theprovisional desired ZMP trajectory corrected using a=Δa in S710 asdescribed above, the processing further proceeds to S712 wherein aterminal divergent component q1[k] in this provisional current time gaitis determined according to the equation shown in the figure (the aboveEquation 10) on the basis of a horizontal body position/velocity (Xe1,Vxe1) at the end of the provisional current time gait determined inS710.

In S710, Δa has been a constant of an extremely small amountappropriately set in the present embodiment. Alternatively, however, Δamay be set such that Δa decreases as the terminal divergent componenterror errq is decreased by repeated calculation, which will be explainedbelow. However, even if it is set as a constant, it is possible tomaintain the terminal divergent component error errq within apermissible range by performing a few repetitive calculations.

Subsequently, the processing proceeds to S714 wherein a parametersensitivity r (changing rate of the terminal divergent component errorrelative to Δa) is determined according to the equation shown in thefigure. The processing further proceeds to S716 wherein the correctionamount of the trapezoidal pattern having, as its height a, the valueobtained by a=−errq/r, that is, the value obtained by dividing theterminal divergent component error errq determined in S706 by theparameter sensitivity r determined in S714, is added to the provisionaldesired ZMP pattern according to the relationship shown in FIG. 44,thereby correcting the provisional desired ZMP pattern (a newprovisional desired ZMP pattern is determined).

Then, the processing returns to S702. As long as the determinationresult of S708 is NO, the processing from S702 to S716 described aboveis repeated. When the determination result of S708 changes to YES, theprocessing leaves the repetition loop (S700) and moves forward to S718.

In S718, the pattern of the body posture restoring moment ZMP-convertedvalue (ZMPrec) of the current time gait is determined on the basis ofmainly the difference between a terminal body posture angle of theprovisional current time gait and an initial body posture angle of anormal gait, and the difference between a terminal body posture angularvelocity of the provisional current time gait and an initial bodyposture angular velocity of a normal gait such that the body postureangle trajectory of the current time gait approximates the body postureangle trajectory of the normal gait. The ZMPrec determined here is usedfor correcting a provisional desired ZMP so that the agreement betweenthe terminal divergent component of the current time gait and theinitial divergent component of the normal gait (the condition in S708)may be maintained even when a body posture angular acceleration isgenerated to connect (bring close) the body posture angle trajectory tothe normal gait in the period, wherein the floor reaction forcehorizontal component permissible range becomes sufficiently wide (theduration in a single stance period), by the processing for generating acurrent time gait instantaneous value, which will be describedhereinafter.

The ZMPrec exhibits a trapezoidal pattern similar to that explained inrelation to the processing for generating the normal gait. To be moreprecise, the ZMPrec is determined as follows. The trapezoidal pattern ofthe ZMPrec of the current time gait is set in the same manner as thatfor the trapezoidal pattern of the ZMPrec in the period of the secondturning gait shown in FIG. 30, the times (break points) of apexes of thetrapezoid being known (more specifically, the times of the break pointsof the trapezoid are matched with the break point times of the desiredZMP), and the height of the trapezoid (parameter) of the ZMPrec isdetermined as described below, taking the height of the trapezoid as anunknown number. In this case, the time at which the trapezoid pattern ofthe ZMPrec begins to rise is denoted by Ta, and the time at which thetrapezoid pattern returns to zero is denoted by Tb.

It is usually impossible to continuously connect both body posture angleand body posture angular velocity to a normal gait at the end of thecurrent time gait if there is only one unknown parameter of the bodyposture restoring moment ZMP-converted value pattern as described above.For this reason, in the present embodiment, an unknown parameter isdetermined so that the state of a gait generated gradually approximatesthe state of a normal gait over a plurality of steps.

Supplementally, the ZMPrec pattern in a single gait may be complicatedto produce two or more unknown parameters to continuously connect boththe body posture angle and the body posture angular velocity to thenormal gait at the end of the current time gait. This, however, may leadto a ZMPrec pattern with excessive staggered variation.

The following will explain the principle of calculation and then theprocedure of the calculation.

As previously described, the difference between the terminal bodyposture angle of the provisional current time gait that has beendetermined with the height of the trapezoid of the ZMPrec pattern beingzero in S702 as discussed above and the initial body posture angle ofthe normal gait is determined, and the determined difference is denotedby θerr. Further, the difference between the terminal body postureangular velocity of the provisional current time gait and the initialbody posture angular velocity of the normal gait is determined, and thedetermined difference is denoted by vθerr.

Here, it is assumed that the current time gait is generated, setting theheight of the trapezoid of the ZMPrec pattern as a certain value bcurr,and then the first turning gait is generated by the same algorithm asthat of the current time gait. It is assumed that the body posturerestoring moment ZMP-converted value ZMPrec pattern of the first turninggait is based on the sum of the ZMPrec pattern of the first turning gait(the trapezoidal pattern shown in FIG. 30, the height of which is acyc1as mentioned above), determined in S310 of FIG. 24 and a certain valueb1.

The gait generated as described above is referred to as a ZMPreccorrected gait, and its terminal (the end of the first turning gait)body posture angle and angular velocity are denoted by θ1 and vθ1,respectively.

The terminal body posture angle and angular velocity of the firstturning gait are denoted by θ1org and vθ1org, respectively, of theoriginal normal gait determined at the point when the subroutineprocessing for determining the initial state of the normal gait in S024is completed (the normal gait in a case where the initial body postureangle and angular velocity of the normal gait finally determined in S310are taken as the initial values, and the ZMPrec pattern is the patterndetermined in S310 (the trapezoidal pattern shown in FIG. 30, the heightthereof being acyc1)).

Here, Δθ1 and Δvθ1 are defined as follows:Δθ1=θ1−θ1org  Equation 50Δvθ1=vθ1−vθ1org  Equation 51

Δθ1 and Δvθ1 mean the differences in body posture angle and angularvelocity, respectively, between the corrected ZMPrec gait and theoriginal normal gait at the point when these two gaits have beengenerated to the end of the first turning gait. If Δθ1 and Δvθ1 arezero, then the second turning gait generated according to the samealgorithm as that of the current time gait, setting the height of thetrapezoid of the ZMPrec pattern as acyc2, and following the correctedZMPrec gait, will agree with the original normal gait.

Thus, the height bcurr of the trapezoid of the current time gait and theheight b1 of the trapezoid of the first turning gait at which Δθ1 andΔvθ1 reach zero may be determined, and the determined bcurr may be takenas the finally determined height of the trapezoid of the current timegait.

The dynamic model related to the body posture angle of the robot 1 hasthe linear characteristic represented by flywheels FHx and FHy shown inFIG. 12. Hence, Δθ1 and Δvθ1 share the relationships shown below withthe height bcurr of the trapezoid of the current time gait, the heightb1 of the trapezoid of the first turning gait, the difference θerrbetween the terminal body posture angle of the provisional current timegait and the initial body posture angle of the normal gait, and thedifference vθerr between the terminal body posture angular velocity ofthe provisional current time gait and the initial body posture angularvelocity of the normal gait.Δθ1=c11*bcurr+c12*b1+θerr+e1*vθerr  Equation 52Δvθ1=c21*bcurr+c22*b1+e2*vθerr  Equation 53

where c11, c12, c21, c22, e1, and e2 are coefficients uniquelydetermined primarily by a current time gait and the gait cycle of afirst turning gait, and the parameters (particularly the parametersrelated to time) of a body posture restoring moment ZMP-converted valueZMPrec pattern.

Based on the aforementioned principle, the calculation procedure firstdetermines the body posture angle difference θerr and the angularvelocity difference Vθerr in the boundary between the provisionalcurrent time gait and the normal gait.

Then, the coefficients c11, c12, c21, c22, e1, and e2 of Equations 52and 53 are determined primarily on the basis of the gait cycles of acurrent time gait and a first turning gait and the parameters(particularly the parameters related to time) of a body posturerestoring moment ZMP-converted value ZMPrec pattern.

Next, the height bcurr of the trapezoid of the current time gait and theheight b1 of the trapezoid of the first turning gait are determined suchthat the right sides of Equations 52 and 53 become zero. In other words,bcurr and b1 are determined by solving the simultaneous equation havingthe left sides of Equation 52 and Equation 53 set to zero.

Lastly, the height of the trapezoid of the trapezoidal pattern of thebody posture restoring moment ZMP-converted value (ZMPrec) of thecurrent time gait is set to the height bcurr of the trapezoid of theabove determined current time gait.

Subsequently, the processing proceeds to S720 wherein the patternobtained by adding the body posture restoring moment ZMP-converted valuepattern determined as described above in S718 to the current provisionaldesired ZMP pattern (the provisional desired ZMP pattern when theprocessing leaves the repetition loop of S700) is determined as thedesired ZMP pattern of the current time gait. This processing is thesame as the processing for adding the trapezoidal pattern having theheight of Δa in S710 to the provisional desired ZMP pattern.

The following will describe the reason for adding the body posturerestoring moment ZMP-converted value pattern to the provisional desiredZMP pattern.

The provisional current time gait generated in the loop of S700 isgenerated by setting the body posture restoring moment ZMP-convertedvalue ZMPrec to zero (by setting the height parameter of the trapezoidalpattern of ZMPrec to zero). In the provisional current time gait finallygenerated in the loop of S700, the body position/velocity continues toor approximates a normal gait, whereas the body posture angle deviatesfrom the body posture angle of the normal gait and undesirably divergesin some cases.

The body posture restoring moment ZMP-converted value pattern determinedin S718 is used to generate a body posture angular acceleration forapproximating a deviation of a body posture angle with respect to anormal gait to zero.

If, however, a body posture angular acceleration based on the bodyposture restoring moment ZMP-converted value pattern determined in S718is generated without correcting the provisional desired ZMP patternfinally obtained in the loop of S700, then the horizontal body positiontrajectory has to be deviated from a horizontal body position trajectoryof the above provisional current time gait in order to satisfy thedynamic balance condition (the moment in which the resultant force ofthe gravity and the inertial force of the robot acting on the desiredZMP, excluding a vertical component, is zero). For this reason, in thepresent embodiment, the provisional desired ZMP pattern is corrected byZMPrec in order to obviate the need for shifting the horizontal bodyposition trajectory from the one finally obtained in the loop of S700.

If a body posture angular acceleration based on the body posturerestoring moment ZMP-converted value pattern determined in S718 isgenerated in addition to the motion of the above provisional currenttime gait, then the ZMP (the point at which the moment of the resultantforce of the gravity and the inertial force, excluding verticalcomponent, produced by a motion reaches zero) deviates by the bodyposture restoring moment ZMP-converted value. Conversely, therefore, byusing the pattern, which is obtained by adding the body posturerestoring moment ZMP-converted value pattern to a provisional desiredZMP pattern, as a desired ZMP pattern, the same body translationalmotion as that of the above provisional current time gait can beobtained by generating the current time gait that satisfies the desiredZMP pattern while generating a body posture angular acceleration of thebody inclination mode based on the body posture restoring momentZMP-converted value pattern determined in S718.

The above is the reason why the pattern obtained by adding the bodyposture restoring moment ZMP-converted value pattern to the provisionaldesired ZMP pattern is used as the desired ZMP pattern.

Subsequently, the processing proceeds to S722 wherein an antiphase armswing restoring angular acceleration pattern is determined such that theantiphase arm swing angle trajectory of a current time gait approximatesto the antiphase arm swing angle trajectory of a normal gait on thebasis of the difference between the terminal antiphase arm swing angleof the provisional current time gait and the initial antiphase arm swingangle of the normal gait and the difference between the terminalantiphase arm swing angular velocity of the provisional current timegait and the initial antiphase arm swing angular velocity of the normalgait. The method for determining the pattern is almost the same as themethod for determining the body posture restoring moment ZMP-convertedvalue pattern in S718, except that variable names are different as shownbelow:

-   Body posture restoring moment ZMP-converted value pattern →Antiphase    arm swing restoring angular acceleration pattern-   Horizontal component→Moment vertical component

This will be explained in detail below. The antiphase arm swingrestoring angular acceleration pattern to be determined here is used inthe processing for generating a current time gait instantaneous value,which will be discussed hereinafter, to make a correction so as toconnect (approximate) the antiphase arm swing angle trajectory to thenormal gait in the period wherein the floor reaction force momentvertical component permissible range becomes sufficiently wide (aduration in a single stance period).

The antiphase arm swing restoring angular acceleration pattern is atrapezoidal pattern similar to that explained in relation to theprocessing for generating a normal gait. To be more precise, theantiphase arm swing restoring angular acceleration pattern is determinedas follows. The trapezoidal pattern of the antiphase arm swing restoringangular acceleration of the current time gait is set in the same manneras that for the trapezoidal pattern of the antiphase arm swing restoringangular acceleration pattern in the period of the second turning gaitshown in FIG. 36, the times (break points) of apexes of the trapezoidbeing known (more specifically, the times of the break points of thetrapezoid are matched to the break point times of the desired ZMP), andthe height of the trapezoid (parameter) of the antiphase arm swingrestoring angular acceleration is determined as described below, takingthe height of the trapezoid as an unknown number. In this case, the timeat which the trapezoid pattern of the antiphase arm swing restoringangular acceleration begins to rise is denoted by Ta, and the time ofreturn to zero from the trapezoid pattern is denoted by Tb.

It is usually impossible to continuously connect both antiphase armswing angle and antiphase arm swing angular velocity to a normal gait atthe end of the current time gait if there is only one unknown parameterof the antiphase arm swing restoring angular acceleration pattern. Forthis reason, in the present embodiment, an unknown parameter isdetermined so that the state of a gait generated gradually approximatesthe state of a normal gait over a plurality of steps.

Supplementally, the antiphase arm swing restoring angular accelerationpattern in a single gait may be complicated to produce two or moreunknown parameters so as to continuously connect both the antiphase armswing angle and antiphase arm swing angular velocity to the normal gaitat the end of the current time gait. This, however, may lead to anantiphase arm swing restoring angular acceleration pattern withexcessive staggered variation.

As previously described, the difference between the terminal antiphasearm swing angle of the provisional current time gait that has beendetermined with the height of the trapezoid of the antiphase arm swingrestoring angular acceleration pattern set to zero in S702, as discussedabove, and the initial antiphase arm swing angle of the normal gait isdetermined, and the determined difference is defined as θazerr. Further,the difference between the terminal antiphase arm swing angular velocityof the provisional current time gait and the initial antiphase arm swingangular velocity of the normal gait is determined, and the determineddifference is denoted by vθzerr.

Here, it is assumed that the current time gait is generated, setting theheight of the trapezoid of the antiphase arm swing restoring angularacceleration pattern to a certain value bzcurr, and then the firstturning gait is generated by the same algorithm as that of the currenttime gait. It is assumed that the antiphase arm swing restoring angularacceleration pattern of the first turning gait is based on the sum ofthe antiphase arm swing restoring angular acceleration pattern (thetrapezoidal pattern shown in FIG. 36, the height of which is azcyc1 asmentioned above), determined in S314 of FIG. 24 and a certain value bz1.

The gait generated as described above is referred to as an antiphase armswing restoring angular acceleration corrected gait, and its end (theend of the first turning gait) antiphase arm swing angle and angularvelocity are denoted by θz1 and vθz1, respectively.

The terminal antiphase arm swing angle and angular velocity of the firstturning gait are denoted by θz1org and vθz1org, respectively, of theoriginal normal gait determined at the point when the subroutineprocessing for determining the initial state of the normal gait in S024is completed (the normal gait in a case where the antiphase arm swingangle and angular velocity at the start of the normal gait finallydetermined in S314 are taken as the initial values, and the antiphasearm swing restoring angular acceleration pattern is the patterndetermined in S314 (the trapezoidal pattern shown in FIG. 36, the heightthereof being azcyc1)).

Here, Δθz1 and Δvθz1 are defined as follows:Δθz1=θz1−θz1org  Equation 1050Δvθz1=vθz1−vθz1org  Equation 1051

Δθz1 and Δvθz1 mean the differences in antiphase arm swing angle andangular velocity, respectively, between the corrected antiphase armswing restoring angular acceleration gait and the original normal gaitat the point when these two gaits have been generated to the end of thefirst turning gait. If Δθz1 and Δvθz1 are zero, then the second turninggait generated according to the same algorithm as that of the currenttime gait, setting the height of the trapezoid of the antiphase armswing restoring angular acceleration pattern as azcyc2, and followingthe corrected antiphase arm swing restoring angular acceleration gait,will agree with the original normal gait.

Thus, the height bzcurr of the trapezoid of the current time gait andthe height bz1 of the trapezoid of the first turning gait at which Δθz1and Δvθz1 reach zero may be determined, and the determined bzcurr may betaken as the finally determined height of the trapezoid of the currenttime gait.

The dynamic model related to the antiphase arm swing angle of the robot1 has the linear characteristic represented by a flywheel FHaz shown inFIG. 12. Hence, Δθz1 and Δvθz1 share the relationships shown below withthe height bzcurr of the trapezoid of the current time gait, the heightbz1 of the trapezoid of the first turning gait, the difference θzerrbetween the terminal antiphase arm swing angle of the provisionalcurrent time gait and the initial antiphase arm swing angle of thenormal gait, and the difference vθzerr between the terminal antiphasearm swing angular velocity of the provisional current time gait and theinitial antiphase arm swing angular velocity of the normal gait.Δθz1=cz11*bzcurr+cz12*bz1+θzerr+ez1*vθzerr  Equation 1052Δvθz1=cz21*bzcurr+cz22*bz1+ez2*vθzerr  Equation 1053

where cz11, cz12, cz21, cz22, ez1, and ez2 are coefficients uniquelydetermined primarily by a current time gait, the gait cycle of a firstturning gait, and the parameters (particularly the parameters related totime) of an antiphase arm swing restoring angular acceleration pattern.

Based on the aforementioned principle, the calculation procedure firstdetermines the antiphase arm swing angle difference θzerr and theangular velocity difference Vθzerr in the boundary between theprovisional current time gait and the normal gait.

Then, the coefficients cz11, cz12, cz21, cz22, ez1, and ez2 of Equations1052 and 1053 are determined primarily on the basis of the gait cyclesof a current time gait and a first turning gait and the parameters(particularly the parameters related to time) of an antiphase arm swingrestoring angular acceleration pattern.

Next, the height bzcurr of the trapezoid of the current time gait andthe height bz1 of the trapezoid of the first turning gait are determinedsuch that the right sides of Equations 1052 and 1053 become zero. Inother words, bzcurr and bz1 are determined by solving the simultaneousequation having the left sides of Equation 1052 and Equation 1053 set tozero.

Lastly, the height of the trapezoid of the trapezoidal pattern of theantiphase arm swing restoring angular acceleration of the current timegait is set to the height bzcurr of the trapezoid of the abovedetermined current time gait.

Returning to FIG. 13, after the current time gait parameters arecorrected in S028 described above or if the determination result in S016is NO, then the processing proceeds to S030 to determine a current timegait instantaneous value.

In S030, the subroutine processing shown in FIG. 45 is carried out.

The same processing as that from S400 to S411 of FIG. 25 is carried outfrom S1400 to S1411 of FIG. 45, and then the processing from S1000 toS1018 of FIG. 46, which is a subroutine of S1412, is carried out.

To be specific, first, in S1000, the value of the reference body yawangle at the current time is substituted into the desired body yawangle. Further, the value of a reference arm posture at the current timeis substituted into the desired arm posture, excluding the arm postureantiphase arm swing angle and the angular velocity.

Then, the processing proceeds to S1002 wherein it is determined whetherthe current time is in the period of restoring a body posture angle andan antiphase arm swing angle (the period from time Ta to time Tb). Theprocessing proceeds to S1004 if the determination result of S1002 is NO,or to S1006 if the determination result is YES.

In S1004, the same processing as that for calculating the horizontalbody acceleration α, the body angular acceleration β, and the antiphasearm swing angular acceleration Ha (from S504 to S528 of FIG. 26) in aperiod other than the body inclination angle/antiphase arm swing anglerestoring period is carried out.

In the case where the processing proceeds to S1006, the horizontal bodyacceleration αtmp, which is required to satisfy the current time (timek) desired ZMP if a motion of the body translational mode is to beperformed, is determined in S1006.

Then, the processing proceeds to S1008 wherein the instantaneous valueZMPrec of a body inclination restoring moment ZMP-converted valuepattern at the current time is calculated on the basis of the parametersrelated to the body inclination restoring moment ZMP-converted valuepattern determined in S718.

The processing then proceeds to S1010 wherein an instantaneous valueβarec of the antiphase arm swing restoring angular acceleration patternat the current time is calculated on the basis of the parameters relatedto the antiphase arm swing restoring angular acceleration patterndetermined in S722.

Subsequently, the processing proceeds to S1012 wherein the body angularacceleration (body inclination angular acceleration) β of the bodyinclination mode is determined according to the equation shown in thefigure.

Subsequently, the processing proceeds to S1014 wherein the horizontalbody acceleration α is determined according to the equation shown in thefigure.

Subsequently, the processing proceeds to S1016 wherein the sum of theinstantaneous value βarec of an antiphase arm swing restoring angularacceleration pattern calculated in S1010 and a reference antiphase armswing angular acceleration βaref (a value obtained by subjecting areference antiphase arm swing angle to second-order differentiation) issubstituted into a desired antiphase arm swing angular acceleration βa.

Subsequently, the processing proceeds to S1018 wherein a floor reactionforce horizontal component Fx when the horizontal body acceleration is αis determined.

Subsequently, the processing proceeds to S1414 wherein the horizontalbody acceleration and the body posture angular acceleration areintegrated to calculate a horizontal body velocity and a body postureangular velocity (body inclination angular velocity). The calculatedresult is further integrated to determine a horizontal body position anda body posture (the body inclination angle). A body yaw angle in thebody posture is determined by a reference body yaw angle in the presentembodiment.

Subsequently, the processing proceeds to S1416 wherein the antiphase armswing acceleration is integrated to calculate an antiphase arm swingangular velocity. The calculation result is further integrated todetermine an antiphase arm swing angle.

Thus, the processing of S030 of FIG. 13 is completed.

Subsequently, the processing proceeds to S032 wherein time t forgenerating a gait is incremented by Δt, and returns to S014 to continueto generate gaits as described above.

The above is the processing for generating desired gaits in the gaitgenerating device 100.

The operation of the device according to the present embodiment will befurther explained with reference to FIG. 4. In the gait generatingdevice 100, a desired gait is generated as described above. In thegenerated desired gait, a desired body position/posture (trajectory) anda desired arm posture (trajectory) are sent out to a robot geometricmodel (an inverse kinematics calculator) 102.

A desired foot position/posture (trajectory), a desired ZMP trajectory(desired total floor reaction force central point trajectory), and adesired total floor reaction force (trajectory) (a desired floorreaction force horizontal component and a desired floor reaction forcevertical component) are sent to a composite-compliance operationdeterminer 104 and also to a desired floor reaction force distributor106. In the desired floor reaction force distributor 106, the floorreaction force is distributed to the feet 22R and 22L, and a desiredfloor reaction force central point of each foot and a desired floorreaction force of each foot are determined. The determined desired floorreaction force central point of each foot and the desired floor reactionforce of each foot are sent to the composite-compliance operationdeterminer 104.

A corrected desired foot position/posture (trajectory) with deformationcompensation is sent from the composite-compliance operation determiner104 to the robot geometric model 102. Upon receipt of the desired bodyposition/posture (trajectory) and the corrected desired footposition/posture (trajectory) with deformation compensation, the robotgeometric model 102 calculates joint displacement commands (values) oftwelve joints (10R(L), etc.) of the legs 2, 2 that satisfy them andsends the calculated commands to a displacement controller 108. Thedisplacement controller 108 performs follow-up control on thedisplacements of the twelve joints of the robot 1, using the jointdisplacement commands (values) calculated by the robot geometric model102 as desired values. In addition, the robot geometric model 102calculates arm joint displacement commands (values) that satisfy thedesired arm postures and sends the calculated commands (values) to thedisplacement controller 108. The displacement controller 108 performsfollow-up control on the displacements of the twelve joints of the armsof the robot 1, using the joint displacement commands (values)calculated by the robot geometric model 102 as desired values.

A floor reaction force generated in the robot 1 (more specifically, anactual floor reaction force of each foot) is detected by a six-axisforce sensor 50. The detected value is sent to the composite-complianceoperation determiner 104.

In the actual body posture angular error (the difference between thedesired body posture and an actual body posture (the actual posture ofthe body 3)) occurring in the robot 1, posture inclination angle errorsθerrx and θerry (specifically, the error of the inclination angle of anactual body posture relative to the vertical direction with respect tothe inclination angle of a desired body posture relative to the verticaldirection, a posture inclination angle error in the roll direction(about the X-axis) being θerrx, and a posture inclination angle error inthe pitch direction (about the Y-axis) being θerry) is detected via aposture sensor 54, and the detected value is sent to a postureinclination stabilization control calculator 112. The postureinclination stabilization control calculator 112 calculates thehorizontal component of a compensating total floor reaction force momentabout a desired total floor reaction force central point (desired ZMP)for restoring the actual body inclination angle of the robot 1 to thedesired body posture angle, and sends it to the composite-complianceoperation determiner 104.

More specifically, in the present embodiment, a compensating total floorreaction force moment horizontal component Mdmdxy is determinedaccording to the following equation by using, for example, PD controllaw:

$\begin{matrix}{{{Compensation}{\;\mspace{14mu}}{total}{\;\mspace{11mu}}{floor}{\;\mspace{11mu}}{reaction}\mspace{14mu}{force}\mspace{14mu}{moment}{\;\mspace{14mu}}{horizontal}{\mspace{11mu}\;}{component}\mspace{14mu}{Mdmdxy}} = {{K\;\theta\; b*{Body}{\mspace{11mu}\;}{posture}{\;\mspace{11mu}}{inclination}{\;\;\;}{angle}{\mspace{11mu}\;}{error}} + {K\;\omega\; b*{Body}{\;\mspace{11mu}}{posture}{\;\mspace{11mu}}{inclination}{\;\mspace{11mu}}{angular}{\mspace{11mu}\mspace{11mu}}{velocity}{\mspace{11mu}\;}{error}}}} & {d25}\end{matrix}$where Kθb and Kωb are predetermined gains. The body posture inclinationangular velocity error is a temporal differential value of the bodyposture inclination angle error, and means an error of an actual bodyposture inclination angular velocity with respect to a desired bodyposture inclination angular velocity. The body posture inclination angleerror is, more specifically, a vector composed of a posture inclinationangle error of the body 3 of the robot 1 in the roll direction (aboutthe X-axis) and a posture inclination angle error thereof in the pitchdirection (about the Y-axis).

Furthermore, a yaw angle error θerrz in the above actual body postureangle error occurring in the robot 1 (more specifically, the postureangle error in the yaw direction (about the Z-axis) in the actual bodyposture angle error is θerrz) is detected through the intermediary ofthe posture sensor 54, and the detected value is sent to a yawstabilization control calculator 113. The yaw stabilization controlcalculator 113 calculates the vertical component of the compensatingtotal floor reaction force moment about a desired total floor reactionforce central point (desired ZMP) for converging an actual body yawangle and/or an angular velocity of the robot 1 to a desired body yawangle and/or an angular velocity, and sends it to thecomposite-compliance operation determiner 104. The composite-complianceoperation determiner 104 corrects the desired floor reaction force onthe basis of the input value. Specifically, the desired floor reactionforce is corrected such that the compensating total floor reaction forcemoment acts about the desired total floor reaction force central point(desired ZMP).

More specifically, in the present embodiment, a compensating total floorreaction force moment vertical component Mdmdz is determined accordingto the following equation by using, for example, the PD control law:

$\begin{matrix}{{{Compensation}{\;\mspace{14mu}}{total}{\;\mspace{11mu}}{floor}{\;\mspace{11mu}}{reaction}\mspace{14mu}{force}\mspace{14mu}{moment}{\;\mspace{14mu}}{vertical}{\mspace{11mu}\;}{component}\mspace{14mu}{Mdmdz}} = {{K\;\theta\;{bz}*{Body}{\mspace{11mu}\;}{yaw}{\;\;\;}{angle}{\mspace{11mu}\;}{error}} + {K\;\omega\;{bz}*{Body}{\;\mspace{11mu}}{yaw}{\;\mspace{11mu}}{angular}{\;\mspace{11mu}}{velocity}{\mspace{11mu}\;}{error}}}} & {d26}\end{matrix}$

where Kθbz and Kωbz are predetermined gains. The body yaw angularvelocity error is a temporal differential value of the body yaw angleerror, and means an error of an actual body yaw angular velocityrelative to a desired body yaw angular velocity.

The composite-compliance operation determiner 104 corrects the desiredfloor reaction force on the basis of the input value. Specifically, thedesired floor reaction force moment horizontal component is correctedsuch that the compensating total floor reaction force moment horizontalcomponent acts about the desired total floor reaction force centralpoint (desired ZMP). In addition, the desired floor reaction forcemoment vertical component is corrected by additionally adding thecompensating total floor reaction force moment vertical component to thedesired floor reaction force vertical component about the desired totalfloor reaction force central point (desired ZMP) that dynamicallybalances with the desired gait.

The composite-compliance operation determiner 104 determines theaforesaid corrected desired foot position/posture (trajectory) withdeformation compensation such that the state of the actual robot 1 andthe floor reaction force calculated from sensor detection values or thelike agree with the corrected desired floor reaction force. It isactually impossible, however, to make every state agree with a desiredstate, so that a trade-off relationship is established therebetween tomake them compromisingly agree with each other as much as possible. Morespecifically, control errors with respect to desired values areweighted, and control is carried out to minimize the weighting averageof control errors (or squares of control errors). With this arrangement,the control is conducted such that actual foot position/posture and atotal floor reaction force almost follow desired foot position/postureand a desired total floor reaction force.

The main point of the present invention is the generation of gaits ofthe robot 1 by the gait generating device 100, and the construction andoperation of the composite-compliance operation determiner 104 or thelike described above are disclosed in detail primarily in JapaneseUnexamined Patent Application Publication No. 11-300661 previouslyapplied by the present applicant; therefore, no more explanation will begiven.

In S028, as previously discussed, the current time gait parameters arecorrected such that a terminal divergent component of the current timegait agrees with q″, which is a value obtained by observing an initialdivergent component q [0] of a normal turning gait from the currenttime's gait supporting leg coordinate system.

Actually, the divergent component is an indicator for assessing whetherthe horizontal body position of a generated gait converges to a normalturning gait when the gait is generated on the basis of current timegait parameters by using a dynamic model and the gait is repeatedlygenerated in succession on the basis of normal turning gait parameters.Basically, the divergent component must be defined so that a terminaldivergent component of the current time gait agrees with q″, which is avalue obtained by observing a normal turning initial divergent componentq [0] from the current time's gait supporting leg coordinate system, atconvergence.

The divergent component defined by Equation 10 is actually a divergentcomponent that approximately satisfies the aforesaid properties.

Hence, in the present embodiment, it may be said that the current timegait parameters have been corrected so that the horizontal body positionof a generated gait converges (approximates) to the horizontal bodyposition of a normal turning gait when the gait is generated on thebasis of current time gait parameters by using a dynamic model and thegait is repeatedly generated in succession on the basis of normalturning gait parameters. Technically, however, only the first turninggait immediately following the current time gait must be the gait thathas been corrected on the basis of the trapezoidal heights b1 and bz1 ofthe first turning gait determined as described above. In other words, ifthe gait that combines the current time gait and the first turning gaitis regarded as the current time gait, then, in the present embodiment,it may be said that the current time gait parameters have been correctedso that the body posture angle of a generated gait converges(approximates) to the body posture angle of a normal gait composed of asecond turning gait and the first turning gait when the gait isrepeatedly generated, as described above.

This is the same as that disclosed in PCT publication of unexaminedapplication WO/02/40224.

Especially in the present embodiment, the desired ZMP pattern of thegait parameters of the current time gait has been corrected so as tosatisfy the condition (the current time gait approximating the normalgait). This will be explained with reference to FIG. 47. The trajectoryindicated by reference mark B in the figure shows the horizontal bodyposition trajectory generated so that divergent components agree at agait boundary, as described above.

The trajectory indicated by reference mark A in the figure shows thehorizontal body position trajectory obtained when a current time gait isgenerated so that horizontal body positions/velocities at boundaries ofnormal turning gaits agree, and then a normal gait is repeatedlygenerated.

As shown in the figure, the trajectory indicated by reference mark Bgenerally deviates from the trajectory indicated by reference mark A atthe boundary of the current time gait and a first normal turning gait.Thereafter, however, the trajectory indicated by reference mark Bgradually converges to (approximates) the trajectory indicated byreference mark A and substantially agrees with the trajectory indicatedby reference mark A in the next normal turning gait period. Thus, thegait generating technique for making only the divergent components agreeat a gait boundary also permits the prevention of gait divergence, asthe gait generating technique for making both position and velocityagree at a gait boundary. The example indicated by reference mark C inthe figure shows an example wherein a trajectory has been generatedwithout considering them. In such a case, the generated trajectorydiverges as time elapses. It is of course possible to complicate adesired ZMP pattern and a plurality of parameters is adjusted to makeboth position and velocity agree; this, however, may cause a desired ZMPpattern to stagger. Incidentally, if both position and velocity are madeto agree, then divergent components also agree, so that the method formaking both position and velocity agree may be said to be a specialexample of the method for making divergent components agree.

Furthermore, in the present embodiment, it may be said that the currenttime gait parameters have been corrected so that the body posture angleof a generated gait converges (approximates) to or agrees with the bodyposture angle of a normal turning gait when the gait is generated on thebasis of current time gait parameters by using a dynamic model and thegait is repeatedly generated in succession on the basis of normalturning gait parameters. Technically, however, only the first turninggait immediately following the current time gait must be a gait that hasbeen corrected by the trapezoidal heights b1 and bz1 of the firstturning gait determined as described above.

A few modifications of the present embodiment will be explained below.

In the present embodiment, for easier understanding, it has beenarranged so that the floor reaction force horizontal componentpermissible range can be independently set for the longitudinaldirection (X-axis direction) component and the lateral direction (Y-axisdirection) component. More slippage-resistant gaits are generated byrepresenting it by a relational expression of the longitudinal directionand the lateral direction.

For instance, a so-called friction circle shown by the followingequation may be used as a permissible range.

$\begin{matrix}{{{\left( {X\mspace{14mu}{component}{\mspace{11mu}\;}{of}{\;\mspace{11mu}}{floor}\mspace{14mu}{reaction}{\mspace{11mu}\;}{force}{\;\mspace{14mu}}{horizontal}{\;\mspace{14mu}}{component}} \right)*\left( {X{\;\mspace{14mu}}{component}{\;\mspace{14mu}}{of}{\mspace{11mu}\;}{floor}{\mspace{11mu}\;}{reaction}{\mspace{11mu}\mspace{11mu}}{force}\mspace{20mu}{horizontal}{\mspace{11mu}\mspace{11mu}}{component}} \right)} + {\left( {Y{\;\mspace{14mu}}{component}{\mspace{11mu}\mspace{11mu}}{of}{\;\mspace{11mu}}{floor}{\mspace{11mu}\mspace{11mu}}{reaction}{\;\mspace{14mu}}{force}\mspace{20mu}{horizontal}{\mspace{11mu}\mspace{11mu}}{component}} \right)*\left( {Y{\;\mspace{14mu}}{component}{\mspace{11mu}\mspace{11mu}}{of}{\mspace{11mu}\mspace{11mu}}{floor}{\mspace{11mu}\;}{reaction}{\mspace{11mu}\mspace{11mu}}{force}{\;\mspace{14mu}}{horizontal}\mspace{14mu}{component}} \right)}} \leq {\left( {{ka}*\mu*{Fz}} \right)*\left( {{ka}*\mu*{Fz}} \right)}} & {{Equation}\mspace{20mu} 59}\end{matrix}$

where Fz denotes a desired floor reaction force vertical component, μdenotes a frictional coefficient, and ka denotes a positive constant of1 or less.

However, if the floor reaction force horizontal component permissiblerange is represented by the relational expression of the longitudinaldirection and the lateral direction, as described above, then it isnecessary to simultaneously or alternately determine a motion on asagittal plane and a motion on a lateral plane so as to simultaneouslyor alternately satisfy the permissible range.

A permissible range composed of a combination of a floor reaction forcehorizontal component and a floor reaction force moment verticalcomponent may be set instead of setting the floor reaction forcehorizontal component permissible range and the floor reaction forcemoment vertical component permissible range separately, as describedabove. As the floor reaction force horizontal component increases, thefriction limit of a floor reaction force moment vertical componentdiminishes. Further, as the floor reaction force moment verticalcomponent increases, the friction limit of the floor reaction forcehorizontal component diminishes. Taking this into account, therefore,setting a permissible range composed of the combination of a floorreaction force horizontal component and a floor reaction force momentvertical component makes it possible to set a permissible range that iscloser to an actual friction limit characteristic. Specifically, apermissible range may be set for a weighted average of an absolute valueof a floor reaction force horizontal component and an absolute value ofa floor reaction force moment vertical component.

The sum of the total center-of-gravity vertical acceleration and agravitational acceleration of the robot is proportional to a floorreaction force vertical component; therefore, a parameter that defines atotal center-of-gravity vertical acceleration trajectory of the robotmay be explicitly set, as a gait parameter, in place of a floor reactionforce vertical component trajectory. This is essentially the same.Alternatively, a parameter defining the vertical acceleration trajectoryof a part that shows a behavior close to a total center-of-gravitytrajectory of the robot may be explicitly set. For instance, if the massof legs is sufficiently smaller than the mass of the body, then the bodyvertical acceleration trajectory and the total center-of-gravityvertical acceleration trajectory of the robot will be substantially thesame or have a proportional relationship; therefore, the body verticalacceleration trajectory may be used in place of the floor reaction forcevertical component trajectory. Similarly, a floor reaction forcehorizontal component and a total center-of-gravity horizontalacceleration of the robot have a proportional relationship, so that thetotal center-of-gravity horizontal acceleration of the robot and thepermissible range thereof may be used in place of a floor reaction forcehorizontal component and a permissible range thereof in the presentembodiment. Furthermore, a parameter related to the horizontalacceleration trajectory of a part that shows a behavior close to a totalcenter-of-gravity horizontal trajectory of the robot may be explicitlyset. For instance, if the mass of legs is sufficiently smaller than themass of the body, then the body horizontal acceleration trajectory andthe total center-of-gravity horizontal acceleration trajectory of therobot will be substantially the same or have a proportionalrelationship; therefore, the body horizontal acceleration and thepermissible range thereof may be used in place of the floor reactionforce horizontal component and the permissible range thereof.

Moreover, the floor reaction force moment vertical component about adesired ZMP and the angular momentum changing rate vertical component ofthe entire robot about the desired ZMP have a proportional relationship;therefore, the angular momentum changing rate vertical component of theentire robot and the permissible range thereof may be used in place ofthe floor reaction force moment vertical component and the permissiblerange thereof in the present embodiment.

In the present embodiment, two motion modes, namely, the bodyinclination mode and the body translational mode, have been used toobtain proper values for the floor reaction force horizontal componentand the floor reaction force moment horizontal component about a desireZMP; however, motion modes other than these may be used.

For example, as shown in FIG. 48, when the body posture is turned withthe hip joints being as the turning center, the angular momentum aboutthe total center of gravity changes and the total center of gravity alsochanges accordingly. Overlapping (combining) this motion and theabove-mentioned body translational mode at a predetermined ratioproduces almost the same motion as that of the body inclination mode,and the floor reaction force horizontal component is no longer produced.Hence, if this is regarded again as the body inclination mode, then asimilar gait can be generated according to the algorithm of the presentembodiment.

Thus, it is not required that one of the motion modes is a motion modethat does not produce a floor reaction force horizontal component. Thisis because any floor reaction force horizontal component and a floorreaction force moment about a desired ZMP can be generated as in theaforesaid example by any combination of modes as long as two motionmodes having different generation ratios of a floor reaction forcehorizontal component and a floor reaction force moment about a desiredZMP are used.

A motion mode other than the motion mode that changes a body posture maybe used. It is preferable, however, to select a motion mode that allowsa largest possible floor reaction force horizontal component or alargest possible floor reaction force moment about a desired ZMP to begenerated in response to a minimized displacement.

For example, a motion mode for swinging the distal positions of rightand left arms in the same direction, or a motion mode for perturbatingthe position of a foot not in contact with the ground (existing in theair) may be selected. However, when perturbating a free leg trajectory,the amount of perturbation should be returned to virtually zero by thetime immediately before landing, so that a landing position will notchange. It is of course possible to combine the motion mode for swingingthe distal positions of right and left arms in the same direction and anantiphase arm swing mode.

Further alternatively, three or more motion modes may be used.

At least two of selected motion modes have mutually different ratios ofa floor reaction force horizontal component to a floor reaction forcemoment about a desired ZMP generated by the motion modes. Otherwise,there will be usually no solution of a simultaneous equation (thebehavior of each motion mode cannot be uniquely determined).

In addition, it is preferred to combine, as much as possible, a motionmode that allows a sufficiently large change to take place in a floorreaction force moment about a desired ZMP while minimizing a change in afloor reaction force horizontal component, and a motion mode that allowsa sufficiently large change to take place in a floor reaction horizontalcomponent while minimizing a change in a floor reaction force momentabout a desired ZMP.

In other words, it is desirable to combine a motion mode that allows asufficiently large change to take place in an angular momentum whileminimizing a change in a total center of gravity, and a motion mode thatallows a sufficiently large change to take place in a total center ofgravity while minimizing a change in an angular momentum. This isbecause a displacement of a motion mode will be smaller.

Further, a body yaw rotation mode may be used in place of the antiphasearm swing mode to prevent a floor reaction force moment verticalcomponent from exceeding a permissible range (to cancel a spinningforce). When the body yaw rotation mode is used, it is preferred todivide the body 3 of the robot 1 into a part close to the waist (e.g.,the part below a member 54 shown in FIG. 1) and the part above it (e.g.,the part above the member 54 shown in FIG. 1) such that the upper partmay turn in the yaw direction (e.g., about a trunk axis of the body 3)relative to the part close to the waist. This makes it possible to allowthe upper part of the body 3 to rotate so as to permit adjustment of afloor reaction force moment vertical component without affecting thepostures of the legs 2 and 2. As an embodiment in such a case, therotational angle of the upper part of the body 3, and the angularvelocity and the angular acceleration thereof may be determined insteadof determining the antiphase arm swing angle and the angular velocityand the angular acceleration in, for instance, the aforementionedembodiment. In this case, the relative positions of the two arms 5 and 5with respect to, for example, the upper part of the body 3 may be fixed.An antiphase arm swing operation of the two arms 5 and 5 may be ofcourse added to the yaw rotation of the upper part of the body 3.

Alternatively, a motion mode may be used that displaces a part otherthan the arms and the body as long as it generates a floor reactionforce moment vertical component.

For example, a mode may be used that moves the distal ends of both legsin opposite longitudinal directions in a floating period.

Alternatively, a few motion modes generating a floor reaction forcemoment vertical component may be used together. For example, theantiphase arm swing mode and the body yaw rotation mode may be used incombination.

The body yaw rotation mode and the antiphase arm swing mode are themodes that generate a floor reaction force moment vertical component insuch a manner that a total center-of-gravity position remains unchanged(in other words, without generating a floor reaction force horizontalcomponent). However, motions causing a total center-of-gravity positionto change (in other words, motions that generate floor reaction forcehorizontal components) may alternatively be also used. This is becausethe floor reaction force horizontal component can be adjusted bycombining these modes with the body translational mode.

In addition to the dynamic model used in the aforesaid embodiment (thedynamic model shown in FIG. 12), the following models may be used.

-   1) Non-linear model having mass points set at a plurality of links,    as shown in FIG. 49 (multi-mass-point model). Inertia (inertial    moment) may be set at each link of the model.-   2) Three-mass-point model disclosed in PCT Kokai publication    WO/02/40224 by the present applicant.-   3) Model that ignores the moment of an inertial force generated by    the body yaw rotation mode or the antiphase arm swing mode.-   4) Separate type model that separately has a partial model    representing a relationship between a resultant force of gravity and    an inertial force (or a floor reaction force balancing therewith)    and a body translational motion, and a partial model representing a    relationship between the above resultant force and a body posture    rotational motion (a body inclination motion and a body yaw    rotational motion). For instance, the mass points shown in FIG. 12    constitute partial models representing the relationship between the    above resultant force and the body translational motion, and the    flywheels shown in FIG. 12 constitute partial models representing    the relationship between the above resultant force and a body    posture rotational motion.

Any one of 1) through 4) shown above requires a motion mode thatgenerates a moment vertical component of an inertial force.

The same model may be used for each processing or models may be properlyused according to processing. For example, the aforementioned normalgait is generated merely to determine a terminal state of the currenttime gait, so that the dynamic accuracy required of the normal gait islower than that required of the current time gait. Hence, for example,the processing for generating the current time gait may use the dynamicmodel shown in FIG. 12 (the model with 3 mass points+flywheels), whilethe processing for generating a normal gait (particularly S408 and S412of FIG. 21) may generate a normal gait by using a dynamic model composedof a body mass point 3 m corresponding to the body 3 and flywheels FHx,FHy, FHaz, and FHbz (the model of one mass point+flywheels, whichcorresponds to the model of FIG. 12 from which leg mass points 2 m and 2m have been removed), ignoring the mass of each leg 2. The processingfor generating the normal gait in this case may carry out the processingof S408 and S412 of FIG. 25 with the mass of the leg mass point beingset to zero in the aforesaid embodiment. This makes it possible todramatically reduce the calculation volume in the processing ofgenerating normal gaits.

In the aforesaid embodiment, the block charts, the flowcharts, andalgorithms or the like may be subject to equivalent modifications,including modified calculation processing sequences. Furthermore, alow-pass filter may be inserted, as necessary.

Although the aforesaid embodiment has been explained in conjunction withthe bipedal mobile robot; however, it may be applied also to amulti-legged robot having three or more feet.

Instead of using an exploratory technique or partly using an analyticaltechnique to determine the initial state of a normal gait (primarily aninitial horizontal body position/velocity, and initial vertical bodyposition/velocity and antiphase arm swing angle and angular velocity),as in the aforesaid embodiment, diverse normal gait parameters may becalculated using the above techniques beforehand and the relationshipbetween the normal gait parameters and the initial states of normalgaits may be mapped or processed into an approximate expression andstored so as to determine the initial values of the normal gait on thebasis of the relationship, which has been mapped or formed intoapproximate expressions, at the time of actual travel.

Further alternatively, a function that combines the aforesaidrelationship, which has been mapped or processed into an approximateexpression, and the aforesaid function f may be mapped or processed intoan approximate expression and stored. More specifically, from the normalgait parameters composed of the aforesaid foot trajectory parameters,the floor reaction force vertical component trajectory parameters, etc.,the functions for directly determining the divergent components ofnormal gaits may be mapped or processed into approximate expressions andthe results may be stored. For example, a normal gait may be generatedin advance for each set of a plurality of types of typical normal gaitparameters, the initial state of the normal gait for each set of normalgait parameters (to be determined in S024 of FIG. 13) may be determinedbeforehand, and a map that shows the relationship between the normalgait parameters of each set and the normal gait initial states may beprepared in advance. Then, when generating a desired gait, the initialstate of a normal gait may be determined by selecting or interpolatingfrom among the sets of the determined normal gait parameters on thebasis of the aforesaid map. This arrangement obviates the need forgenerating a normal gait each time a current time gait is generated,thus permitting a significant reduction in the amount of calculation forthe processing of generating a desired gait.

As the method for correcting a current time gait to connect(approximate) it to a normal gait, the desired ZMP parameter of thecurrent time gait has been corrected in the present embodiment. However,other parameters may alternatively be corrected.

For instance, the trajectory of a free leg in the air in a current timegait may be changed. If, for example, a horizontal body position islikely to shift farther to the rear than a normal gait, then a free legis promptly moved forward after it leaves a floor so as to shift theposition of the center of gravity of the free leg toward the front. Thiscauses the horizontal body position for satisfying a desired ZMP to beunavoidably further accelerated toward the front. As a result, thehorizontal body position moves further forward at the end of the currenttime gait, making it possible to match the normal gait.

Instead of correcting a desired ZMP parameter, the cycle of a currenttime gait may be corrected. For instance, if the horizontal bodyposition is likely to shift farther to the rear than a normal gait, thenthe cycle of the current time gait may be extended. Extending the cycleof the current time gait will extend the time for the horizontal bodyposition to move, permitting extra forward movement to be accomplishedaccordingly.

However, if a desired ZMP parameter is corrected when determining anappropriate value of the horizontal body position or the like by anexploratory technique, the horizontal body position at the end of thecurrent time gait changes substantially proportionally to a correctionamount of the desired ZMP, so that the number of explorations of theappropriate value can be reduced. In comparison to this, correcting thecenter-of-gravity trajectory of a free leg or the cycle of a gaitrequires a greater number of explorations for the appropriate value,because the horizontal body position at the end of the current time gaitchanges considerably nonlinearly in response to the correction.

In the present embodiment, the desired ZMP parameter of the current timegait has been corrected, as the method for correcting the current timegait to connect (approximate) it to the normal gait. This method maylead to an excessive correction amount (correction amount a shown inFIG. 34) of the desired ZMP parameter in some cases. For instance, if arequest for an abrupt changeover from the gait of hopping at a spot to ahigh-speed travel (a request for running) is issued, then the desiredZMP parameter must be given an extremely large shift backward relativeto an advancing direction in order to ensure connection (approximation)to a high-speed normal gait (normal gait for running). In this case, asdiscussed above, gait parameters in addition to the desired ZMPparameter are preferably corrected. In this case, however, the requestfor such an abrupt acceleration itself is actually unreasonable, so thata required value itself may be corrected as an alternative.

To correct the required value, for example, a normal gait satisfying therequest (the required parameter) is determined, for the time being,according to the procedure shown in the present embodiment, and at thepoint when a current time gait parameter has been determined so that itconnects to the normal gait, it is determined whether the stabilitymargin for the desired ZMP trajectory of the current time gait has beenunduly reduced. If the stability margin has reduced too much (if thedesired ZMP has deviated from a so-called supporting polygon or thedesired ZMP is positioned near an edge of the supporting polygon), thenthe request may be corrected.

Alternatively, the permissible range of acceleration/deceleration of agait ((Next time gait initial velocity−Current time gait initialvelocity)/Cycle of current time gait) is set beforehand, and at thepoint when a request (a required parameter related to a gait cycle) isreceived, the acceleration/deceleration based on the request isdetermined, and if the determined acceleration/deceleration exceeds thepermissible range, then the request may be corrected so that it fallswithin the permissible range.

Supplementally, if simple dynamic models as discussed above are used,the aforesaid ΔMp, ΔFp, ΔMr, ΔFr, ΔMaz, and ΔMbz may be analyticallydetermined by dynamic calculation; however, if a general, morecomplicated dynamic model is used, then they may be determined asfollows. A floor reaction force in a case where the body 3 isaccelerated by an extremely small amount by the body translational modeor accelerated by an extremely small amount by the body inclination modeis determined, and then the difference between this determined floorreaction force and the floor reaction force obtained in a case where thebody 3 is not accelerated is determined. Then, the difference is dividedby the above extremely small amount.

Alternatively, the average value of each of ΔMp, ΔFp, ΔMr, ΔFr, ΔMaz,ΔMbz, and ΔMp/ΔMr or the like in standard gaits may be determined inadvance and may be used. ΔMp, ΔFp, ΔMr, ΔFr, ΔMaz, ΔMbz, and ΔMp/ΔMrvary according to a state (a posture and its changing rate), so that theaccuracy slightly deteriorates, as compared with a method in which theyare determined for each state at each instant; however, the amount ofcalculation can be significantly reduced when models that are morecomplicated than the aforesaid models are used.

The following method may be used as the method for determining theheight bzcurr of the trapezoid of the antiphase arm swing restoringangular acceleration pattern of the current time gait.

The antiphase arm swing angle and the angular velocity at the end of thecurrent time gait of the aforesaid gait with a corrected antiphase armswing restoring angular acceleration (refer to the explanation of S722of FIG. 42) are denoted by θzcurr and vθzcurr, respectively, and thedifferences between these and the antiphase arm swing angle and theangular velocity of a normal gait are denoted by Δθzcerr and Δvθzcerr.

A discrete type state equation may be set up, in which a gait cycle isdefined as an interval, the differences θzerr and vθzerr between theterminal antiphase arm swing angle and angular velocity of a provisionalcurrent time gait and the initial antiphase arm swing angle and angularvelocity of a normal gait denote a last time state, bzcurr denotes aninput, and Δθzcerr and Δvθzcerr denote a current state, and then afeedback rule may be determined using a modern control theory or thelike so as to converge Δθzcerr and Δvθzcerr to zero. The determinedfeedback rule may be used to obtain bzcurr.

Based mainly on the difference between desired antiphase arm swingangle/angular velocity and reference antiphase arm swing angle/angularvelocity at each instant, the value of the antiphase arm swing restoringangular acceleration βarec at each instant may be determined by using astate feedback rule or the like so as to converge the above differenceto zero rather than using a trapezoidal pattern to determine theantiphase arm swing restoring angular acceleration βarec of a currenttime gait and/or a normal gait.

Based on desired antiphase arm swing angle/angular velocity of a currenttime gait at each instant, the antiphase arm swing restoring angularacceleration βarec at each instant may be determined by using a statefeedback rule or the like such that these will approximate initialantiphase arm swing angle/angular velocity of a first turning gaitrather than using a trapezoidal pattern to determine the antiphase armswing restoring angular acceleration βarec of a current time gait.

To generate a gait for traveling on a slope (when moving the robot 1 ona slant floor surface), the permissible range of the floor surfaceparallel component of a translational floor reaction force (a componentparallel to the floor surface), that is, the permissible range offictional force, or the permissible range of the floor surface parallelcomponent of a total center-of-gravity acceleration (this isproportionate to a frictional force) may be set in place of a floorreaction force horizontal component permissible range or a totalcenter-of-gravity acceleration horizontal component permissible range. Acase, for example, where the permissible range of the floor surfaceparallel component (frictional force) of a translational floor reactionforce will be explained (this explanation applies also to a case wherethe permissible range of a floor surface parallel component of totalcenter-of-gravity acceleration is set). The frictional force isdetermined according to Equation 72 shown below if an inclination anglerelative to the horizontal plane of a floor surface is defined as θf (aslope down forward in the direction in which the robot 1 advances isdefined as a positive slope). Therefore, to generate a gait according tothe same algorithm as that in the aforesaid embodiment, the Equation 72may be used to convert a frictional force permissible range into a floorreaction force horizontal component permissible range thereby to set thefloor reaction force horizontal component permissible range. In thiscase, a desired floor reaction force vertical component may be used asthe floor reaction force vertical component of Equation 72.

$\begin{matrix}{{{Frictional}{\;\mspace{14mu}}{force}} = {{{Floor}\mspace{14mu}{reaction}{\;\mspace{11mu}}{force}{\mspace{11mu}\;}{horizontal}{\mspace{11mu}\mspace{11mu}}{component}*{\cos\left( {\theta\; f} \right)}} - {{Floor}{\;\mspace{14mu}}{reaction}\mspace{20mu}{force}{\;\mspace{11mu}}{vertical}{\mspace{11mu}\mspace{11mu}}{component}*{\sin\left( {\theta\; f} \right)}}}} & {{Equation}\mspace{20mu} 72}\end{matrix}$

When generating a gait for traveling on a slope (when moving the robot 1on an inclined floor surface), a floor reaction force moment verticalcomponent can be converted into a moment in the direction of the normalline of a floor surface frictional force according to Equation 1072, sothat the permissible range of the component in a floor surface normalline of a floor reaction force moment, i.e., the permissible range ofthe moment in the direction of the normal line of a floor surfacefrictional force, may be set in place of the permissible range of afloor reaction force moment vertical component.

$\begin{matrix}{{{Moment}\mspace{20mu}{in}{\;\mspace{11mu}}{the}{\mspace{11mu}\mspace{11mu}}{direction}{\mspace{11mu}\mspace{11mu}}{of}{\;\mspace{11mu}}{the}{\mspace{11mu}\;}{normal}\mspace{14mu}{line}\mspace{14mu}{of}{\mspace{11mu}\;}{floor}{\mspace{11mu}\mspace{11mu}}{surface}{\mspace{11mu}\;}{frictional}{\mspace{11mu}\;}{force}} = {{Vertical}{\mspace{11mu}\;}{component}{\;\mspace{14mu}}{of}{\;\mspace{11mu}}{floor}\mspace{14mu}{reaction}{\mspace{11mu}\;}{force}{\;\mspace{11mu}}{moment}*{\cos\left( {\theta\; f} \right)}}} & {{Equation}\mspace{14mu} 1072}\end{matrix}$

The parameters of a current time gait may be re-determined in the middleof the generation of a current time gait, as disclosed in PCT Kokaipublication WO/02/40224 by the present applicant, instead of determiningthem when a last time gait is completed, as in the aforesaid embodiment.This allows an immediate response to be taken if a gait request changes,although it involves an increased calculation volume.

If correction of a gait (re-determination of a current time gaitparameter) is not completed within a current control cycle, then anuncorrected gait or provisionally corrected gait (a gait in the middleof exploration, i.e., a gait that does not fully satisfy an explorationcompletion condition (a deviation of a gait boundary condition beingless than a permissible value)), is tentatively output, and a properlycorrected (non-provisional) gait may be output by the next control cycleor by a plurality of control cycles later. The corrected desired ZMPtrajectory and desired floor reaction force vertical componenttrajectory are connected, and these do not suddenly change in a shorttime; therefore, the desired ZMP trajectory and the desired floorreaction force vertical component trajectory of the current time gaitwill hardly present a problem although they will be slightly staggered.

INDUSTRIAL APPLICABILITY

As described above, the present invention is usefully applied to make itpossible to generate gaits that permit spin-free, smooth travel of alegged mobile robot, such as a bipedal mobile robot, even in acircumstance in which the frictional force between the robot and a floorsurface is small.

1. A gait generating device of a legged mobile robot for generating adesired gait of a legged mobile robot that travels by moving a pluralityof legs extended from its body, comprising: permissible range settingmeans for setting a permissible range of a restriction object amount,the restriction object amount being a vertical component of a floorreaction force moment to be applied to the robot or a component of thefloor reaction force moment in floor surface normal line direction, or avertical component of an angular momentum changing rate of the robot ora component of the angular momentum changing rate in floor surfacenormal line direction; provisional motion determining means fordetermining a provisional motion of the desired gait such that aresultant force of a gravity and an inertial force acting on the robotsatisfies a predetermined dynamic balance condition on a predetermineddynamic model; and provisional motion correcting means for correctingthe provisional motion to determine a motion of the desired gait bychanging the changing rate of an angular momentum of the robot from theprovisional motion while limiting the restriction object amount to thepermissible range on the dynamic model if the restriction object amountdefined by the provisional motion of the desired gait deviates from thepermissible range; wherein the robot is a robot equipped with two armsextended from the right and left sides of the body, and the motion to becorrected by the provisional motion correcting means, which is thedesired gait, is a motion for moving the two arms forward and backwardrelative to the robot in opposite directions from each other.
 2. Thegait generating device of a legged mobile robot according to claim 1,wherein a motion to be corrected by the provisional motion correctingmeans is a motion of a body of the robot or an arm extended from thebody.
 3. The gait generating device of a legged mobile robot accordingto claim 1, wherein, in the motion of the body of the robot or themotion of an arm extended from the body, the motion to be corrected bythe provisional motion correcting means is a motion that changes thevertical component of the angular momentum changing rate of the robot orthe component of the angular momentum changing rate in floor surfacenormal line direction while substantially maintaining the position ofcenter-of-gravity of the robot at the position of center-of-gravitydetermined by the provisional motion.
 4. The gait generating device of alegged mobile robot according to claim 1, wherein the desired gait is agait in which a landing period during which at least one leg of therobot is landed and a floating period during which all legs are floatedin the air are alternately repeated, and the permissible range is set tosubstantially zero at least during the floating period.
 5. The gaitgenerating device of a legged mobile robot according to claim 1,comprising: desired vertical component determining means for determininga desired vertical component of a translational floor reaction force ofthe robot or a desired vertical component of a total center-of-gravityacceleration or a desired vertical component of a body acceleration,wherein the permissible range setting means sets the permissible rangeon the basis of a desired vertical component determined by the desiredvertical component determining means.
 6. The gait generating device of alegged mobile robot according to claim 1, wherein the predetermineddynamic model describes at least the relationship between a motion to becorrected by the provisional motion correcting means and a floorreaction force as a relationship between a rotational motion of aflywheel, which is rotative about a vertical axis or a floor surfacenormal line axis, and a floor reaction force.
 7. The gait generatingdevice of a legged mobile robot according to claim 1, wherein theprovisional motion correcting means determines a motion of the desiredgait such that the motion of the robot to be corrected if therestriction object amount deviates from the permissible range isapproximated or matched to a predetermined reference motion trajectoryin a predetermined period during which the restriction object amountdetermined by the provisional motion lies in the permissible range. 8.The gait generating device of a legged mobile robot according to claim1, wherein the desired gait to be generated has a current time gaitgenerated for each predetermined period to be used for an actual motionof the robot, and a normal gait, which is a virtual cyclic gaitfollowing each current time gait and which is used for generating thecurrent time gait, and the processing of the provisional motiondetermining means and the provisional motion correcting means is carriedout when generating the current time gait and/or a normal gait followingthe current time gait.
 9. The gait generating device of a legged mobilerobot according to claim 8, wherein the permissible range setting meanssets the permissible range of the current time gait and the permissiblerange of the normal gait following the current time gait on the bass ofa required parameter of the current time gait.
 10. The gait generatingdevice of a legged mobile robot according to claim 9, wherein the leggedmobile robot is a bipedal mobile robot having two legs, and the requiredparameter includes parameters that define the landing positions/posturesfor two steps of the distal portions of the legs of the bipedal mobilerobot and parameters that define the gait cycles of a first step and asecond step.
 11. The gait generating device of a legged mobile robotaccording to claim 1, further comprising means for generating thedesired gait.